Java MongoDBドライバを使用してMongoDBにアイテムを挿入しようとしています。挿入するためにnextIdを挿入しようとしていますが、どうして私はいつもnextIdを4にしています。 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()を使用し、結果を1つ増やしてnextIdを取得します。 – Cassian
文書IDに増分整数を使用することは強くお勧めします。 [公式ガイド](https://docs.mongodb.com/v3.0/tutorial/create-an-auto-incrementing-field/#considerations)は「_一般的にはMongoDBでは自動増分パターンを使用しません_idフィールド、または任意のフィールドのために、大量のドキュメントを持つデータベースのために拡大縮小しないので。 –