3
'시퀀스'컬렉션을 만들었습니다. '이름'과 '카운터'필드가 있습니다. 'name'필드는 'Tag'로 설정되고 'counter'필드는 0으로 설정됩니다. 다음은 'counter'필드의 다음 값을 반환하는 메소드 내의 코드입니다.시퀀스 생성/업데이트 - MongoDB
final Sequence tagSequence = mongoTemplate.findAndModify(
new Query(Criteria.where("name").is("Tag")),
new Update().inc("counter", 1),
new FindAndModifyOptions().returnNew(true), Sequence.class);
그러나이 코드는 작동하지 않습니다. 어떤 입력?
여기 구현 된 코드는 http://dev.bubblemix.net/blog/2011/04/auto-increment-for-mongodb-with-the-java-driver/입니다. 그러나이 코드의 문제점을 알고 싶었습니다.
당신이 mongod 서버의 로그 레벨 (예 : mongod -vvv)을 증가시킬 수 있습니다 때이 코드를 실제로 서버로 전송되고 있는지 확인 실행됩니까? – jyemin
mongod -v를 실행하는 로그에서 링크 된 순수 java 드라이버 코드를 실행했습니다. Wed Jun 20 19:41:33 [conn3] 명령 테스트를 실행합니다. $ cmd {findandmodify : "seq", query : {_id : "seq1"}, 업데이트 : {$ inc : {seq : 1}}, 새 : true, upsert : true} Wed Jun 20 19:41:33 [conn3] 쿼리 test.seq 쿼리 : {_id : "seq1"} ntoreturn : 1 idhack : 1 reslen : 48 0ms Wed Jun 20 19:41:33 [test3] update test.seq 검색어 : {_id : "seq1"} 업데이트 : {$ inc : {seq : 1 }} idhack : 1 0ms – jyemin
정확히 어떤 일이 벌어지고 있는지이 로그에서 이해하지 못했습니다. – devang