gpt4 book ai didi

java - java插入mongodb文档后​​获取对象id

转载 作者:可可西里 更新时间:2023-11-01 10:40:23 24 4
gpt4 key购买 nike

我正在使用 mongodb 3.4,我想获取最后插入的文档 ID。我搜索了所有内容,发现如果我使用 BasicDBObject,则可以使用以下代码。

BasicDBObject docs = new BasicDBObject(doc);
collection.insertOne(docs);
ID = (ObjectId)doc.get( "_id" );

但问题是我使用的是文档类型而不是 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

最佳答案

基于ObjectId Javadoc ,您可以简单地从一个 24 字节的十六进制字符串实例化一个 ObjectId,如果您使用 UTF-8 编码,这就是 59a4db1a6812d7430c3ef2a5 的含义。为什么不直接使用 new ObjectId("59a4db1a6812d7430c3ef2a5")new ObjectId("59a4db1a6812d7430c3ef2a5".getBytes(StandardCharsets.UTF_8))?虽然,我会说将 ObjectId 暴露在与 Mongo 集成的层之外是一个设计缺陷。

关于java - java插入mongodb文档后​​获取对象id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45930065/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com