java - mongodb 查找并返回 id 作为字符串 - java

标签 java mongodb bson

早上好

好像脑残了!环顾四周,看不到其他人有同样的问题,所以我要么完全错过了某些东西(很可能),要么没有其他人有这个用例。

我基本上想返回存储在 mongodb 集合中的所有对象,包括它们的 ID,但是作为字符串表示而不是完整的对象。所以这个:

public ArrayList findAllObjects(){
      return db.getCollection("objects").find().into(new ArrayList<Document>());
}

{
  _id: {
    class: "org.bson.types.ObjectId",
    counter: 7230903,
    date: "2016-10-03T12:39:38Z",
    machineIdentifier: 5652488,
    processIdentifier: 8859,
    time: 1475498378000,
    timeSecond: 1475498378,
    timestamp: 1475498378
  },
  name: "Test Object"
},

现在,如果我在 mongo 控制台上运行查找,我会得到如下内容:

{
  "_id": ObjectId("57f2518a564008229b6e55b7"),
  "name": "Test Object"
}

我想在原始 json 中返回这个 57f2518a564008229b6e55b7 作为 _id(可能以其他名称添加)字段。

我只需在单个文档上运行 getObjectId() 即可在 Java 代码中获取该字符串表示形式。因此,我可能会遍历每个结果并设置/添加 _id,但这对我来说有点难闻。

欢迎提出任何建议。

谢谢

更新:

感谢 Sinclair 的评论,但我不认为这是重复的,因为我确实想要包含 id,但不一定要排除任何内容。如果字符串表示在 org.bson.types.ObjectId 对象中作为属性,我可能会排除其余部分,但事实并非如此。

最佳答案

您可以简单地使用 toString() 方法将对象转换为字符串:

List<Document> documents = collection.find().into(new ArrayList<>());

documents.parallelStream().forEach(document -> {
     document.put("_id", document.get("_id").toString());
});

关于java - mongodb 查找并返回 id 作为字符串 - java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39850331/

相关文章:

node.js - NodeJS 存储基于文件的 JSON 数据库的最佳方式?

java - PostgreSQL/Clojure 的驱动程序问题

java - 如何获取两个字符之间的字符串?

java - 如何删除TextChangedListener?

mongodb - 将 MongoDB 聚合结果 reshape 为字段值文档

ios - Meteor 网络应用程序可以向 iOS 应用程序提供数据吗?

java - 比较Java中的泛型类型,如果类型是字符串,如何忽略大写字母?

mongodb - 如何使用 mongoDB 查找一个文档中某个键的计数?

java - 即使将库添加到 hadoop 文件夹后也找不到 BSONFileInputFormat

javascript - MongoDB 中的 "JavaScript with Scope"是什么