gpt4 book ai didi

java - mongodb根据父文档的搜索结果选择子文档

转载 作者:太空宇宙 更新时间:2023-11-04 12:09:23 25 4
gpt4 key购买 nike

我有一个chats集合女巫示例文档

{
"_id" : ObjectId("57f95e8e385bb61c5cf2cd18"),
//some other fields
"messages" : [
{
"sender" : "57ec1aaa0ffe16123439d52b",
"message" : "Hello!",
"sentTime" : "Oct 13, 2016 1:51:31 AM"
},
{
"sender" : "57ec1aaa0ffe16123439d52b",
"message" : "Hello!",
"sentTime" : "Oct 13, 2016 1:51:33 AM"
}
]
}

我想根据_id字段搜索集合,并且只使用MongoDB的java驱动程序获取messages子文档的数据作为查询结果,因为我想使用Gson映射到POJO数组。

期望的输出:

[
{
"sender" : "57ec1aaa0ffe16123439d52b",
"message" : "Hello!",
"sentTime" : "Oct 13, 2016 1:51:31 AM"
},
{
"sender" : "57ec1aaa0ffe16123439d52b",
"message" : "Hello!",
"sentTime" : "Oct 13, 2016 1:51:33 AM"
}
]

如何使用 MongoDB 的 Java 驱动程序来实现这一点

最佳答案

我们需要指定查询和字段列表,以下是如何执行此操作的示例:

DB db = //get db

DBObject object = new BasicDBObject();
object.put("_id", new ObjectId("<some id>"));
DBObject fields = new BasicDBObject();
fields.put("messages", 1);
DBObject result = db.getCollection("test").findOne(object, fields);
System.out.println(result.get("messages"));

关于java - mongodb根据父文档的搜索结果选择子文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40008534/

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