有没有一种简单的方法来使用Java驱动程序获取mongoDB实例的最后插入文档的ID(ObjectID)?
讨厌回答我自己的问题,但我才意识到你可以这样做:
BasicDBObject doc = new BasicDBObject( "name", "Matt" ); collection.insert( doc ); ObjectId id = (ObjectId)doc.get( "_id" );
这样做很安全
doc.set("_id", new ObjectId())
如果你看看驱动程序代码
if ( ensureID && id == null ){ id = ObjectId.get(); jo.put( "_id" , id ); } public static ObjectId get(){ return new ObjectId(); }
为了避免转换Object
为ObjectId
,给定a com.mongodb.client.MongoCollection collection
和a org.bson.Document doc
,您可以执行以下操作:
collection.insert(doc); ObjectId id = doc.getObjectId("_id");
我不知道Java驱动程序,但对于后代,可以运行getLastError命令来获取写入的_id,甚至是upsert(从1.5.4开始)