【问题标题】:Java & MongoDB - How to get the value of _id in a MongoDB document?Java & MongoDB - 如何在 MongoDB 文档中获取 _id 的值?
【发布时间】:2018-05-22 17:20:46
【问题描述】:

我正在使用此处指定的 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

我已经检查了doc 有一个返回的Document,但我无法访问_id 的值。

错误是这样说的:

java.lang.ClassCastException: org.bson.types.ObjectId cannot be cast to java.lang.String

【问题讨论】:

  • 你的计划是什么

标签: java database mongodb server-side


【解决方案1】:

_idObjectId,你应该使用这个:

String id = doc.getObjectId("_id").toHexString(); 

【讨论】:

    【解决方案2】:

    您是否尝试过以下操作:

    doc.get("_id");
    

    【讨论】:

    • 刚试过。 IDE 引发错误,提示“类型不匹配:无法将对象转换为字符串”。也许我会试试(String) doc.get("_id")
    • 或者实际上是doc.get("_id").toString();
    • 或者doc.get("_id", ObjectId.class)),如果你想获得ObjectId实例。 '虽然如果你只需要十六进制字符串表示,那么doc.get("_id").toString() 就足够了。
    【解决方案3】:

    我不得不跑:

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

    获取文字ID。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-19
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 2014-09-08
      • 2016-03-26
      • 1970-01-01
      • 2017-03-09
      相关资源
      最近更新 更多