Java MongoDB 드라이버를 사용하여 MongoDB에 항목을 삽입하려고합니다. 삽입하기 위해 nextId를 삽입하려고하지만 다음 이유가 무엇인지 확실하지 않습니다. Mongo에 항목을 삽입하기 전에 nextId를 얻기 위해 아래 주어진 메소드를 사용합니다.Java Mongo DB 유효한 다음 ID를 얻을 수 없습니다.
private Long getNextIdValue(DBCollection dbCollection) {
Long nextSequenceNumber = 1L;
DBObject query = new BasicDBObject();
query.put("id", -1);
DBCursor cursor = dbCollection.find().sort(query).limit(1);
while (cursor.hasNext()) {
DBObject itemDBObj = cursor.next();
nextSequenceNumber = new Long(itemDBObj.get("id").toString()) + 1;
}
return nextSequenceNumber;
}
내 mongodb 컬렉션에 총 13 개의 레코드가 있습니다. 여기서 내가 잘못하고있는 것은 무엇입니까?
컬렉션의 문서 수를 얻기 위해 db.collection.count()를 사용하고 nextID를 얻기 위해 결과를 1 씩 증가시킵니다. – Cassian
문서 id에 증가 정수를 사용하지 않는 것이 좋습니다 **. [공식 가이드] (https://docs.mongodb.com/v3.0/tutorial/create-an-auto-incrementing-field/#considerations)는 "_ 일반적으로 MongoDB에서는 자동 증가 패턴을 사용하지 않을 것입니다 _id 필드 또는 모든 필드의 경우, 많은 수의 문서가있는 데이터베이스의 크기가 조정되지 않기 때문에. –