Java & MongoDB - 如何在 MongoDB 文档中获取 _id 的值?

Java & MongoDB - How to get the value of _id in a MongoDB document?

提问人:Kellen Stuart 提问时间:5/23/2018 最后编辑:Kellen Stuart 更新时间:5/24/2018 访问量:4645

问:

我正在使用此处指定的 API:http://api.mongodb.com/java/current/org/bson/Document.html

这是我拥有的代码:

Document doc = collection.find(Filters.eq("field","value")).first();
String id = (String) doc.getString("_id"); // this line throws exception

我已经检查了返回,但我无法访问 的值。docDocument_id

错误是这样说的:

java.lang.ClassCastException: org.bson.types.ObjectId cannot be cast to java.lang.String
Java 数据库 MongoDB 服务器端

评论

0赞 Mạnh Quyết Nguyễn 5/23/2018
你的计划是什么

答:

1赞 d3t0x 5/23/2018 #1

您是否尝试过以下操作:

doc.get("_id");

评论

0赞 Kellen Stuart 5/23/2018
刚刚尝试过。IDE 抛出一个错误,指出“Type mismatch: cannot convert Object to String”(类型不匹配:无法将对象转换为字符串)。也许我会尝试(String) doc.get("_id")
0赞 Kellen Stuart 5/23/2018
或者实际上doc.get("_id").toString();
0赞 glytching 5/23/2018
或者,如果您想获取实例。“不过,如果你只需要十六进制字符串表示,那就足够了。doc.get("_id", ObjectId.class))ObjectIddoc.get("_id").toString()
2赞 Mạnh Quyết Nguyễn 5/23/2018 #2

_id是一个 ,你应该使用这个:ObjectId

String id = doc.getObjectId("_id").toHexString(); 
1赞 Kellen Stuart 5/24/2018 #3

我不得不跑:

doc.get("_id").toString();

获取文本 ID。