gpt4 book ai didi

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

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

早上好

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

我基本上想返回存储在 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/

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