【发布时间】:2017-08-29 03:01:10
【问题描述】:
我正在使用 mongodb 3.4,我想获取最后插入的文档 ID。我已经搜索了所有内容,我发现如果我使用 BasicDBObject,可以使用下面的代码。
BasicDBObject docs = new BasicDBObject(doc);
collection.insertOne(docs);
ID = (ObjectId)doc.get( "_id" );
但问题是我使用的是 Document 类型而不是 BasicDBObject,所以我试图像这样得到它,doc.getObjectId();。但它会问一个我真正想要的参数,那么有人知道如何获取它吗?
编辑
这是我将它插入到 mongo db。
Document doc = new Document("jarFileName", jarDataObj.getJarFileName())
.append("directory", jarDataObj.getPathData())
.append("version", jarDataObj.getVersion())
.append("artifactID", jarDataObj.getArtifactId())
.append("groupID", jarDataObj.getGroupId());
如果我使用doc.toJson(),它会显示整个文档。有没有办法只提取_id?
这只会给我我想要的值,就像 objectkey,所以我可以将它用作参考键。
collection.insertOne(doc);
jarID = doc.get( "_id" );
System.out.println(jarID); //59a4db1a6812d7430c3ef2a5
【问题讨论】:
-
“说话很便宜,给我看代码”。 - 莱纳斯·托瓦兹。
-
BasicDBObject和Document都实现了Map接口,.get()实际上属于该接口。因此,您只需将上述代码中的Document替换为BasicDBObject。 -
我编辑了问题,但我想要的是 objectid 而不是 id 值。
-
@Abhijit Sarkar 发布了你想要的代码,有什么想法吗?