spring Java Mongo DB无法获取有效的下一个id
我正在尝试使用Java MongoDB驱动程序在MongoDB中插入一个项。在插入之前,我试图让nextId插入,但不确定为什么我总是将nextId设为4。我使用下面给定的方法在Mongo中插入任何项目之前获取nextId
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张唱片。我做错了什么
# 1 楼答案
请不要那样做。你不需要创建一个糟糕的管理id情况,因为驱动程序已经以最好的方式做到了这一点,只需为字段使用正确的类型和注释:
然后编写一个通用方法来插入所有实体:
这将为id创建一个基于时间的索引哈希,它比获取“下一个id”功能强大得多
https://www.tutorialspoint.com/mongodb/mongodb_objectid.htm
# 2 楼答案
如何执行像+1到字符串这样的算术运算
尝试创建这样的序列集合
然后使用Update增加id
# 3 楼答案
我找到了使用b.collection的方法。count()。我只需找到总计数并递增1,即可将id分配给我的对象