【发布时间】:2021-05-16 02:34:18
【问题描述】:
我的 MongoDB 文档中有一个 ObjectId 数组,我想使用 Go(特别是 mgo.v2)执行查询,用它们引用的文档中的数据填充它们。例如:
{
_id: ObjectId("some_id"),
events: [
ObjectId("referenced_id_1"),
ObjectId("referenced_id_2")
]
}
我希望查询以以下格式返回文档:
{
_id: ObjectId("some_id"),
events: [
{
_id: ObjectId("referenced_id_1"),
name: "some_name_1"
},
{
_id: ObjectId("referenced_id_2"),
name: "some_name_2"
}
]
}
据我所知,我需要使用$lookup,然后是$unwind,但似乎无法弄清楚。任何帮助将不胜感激!谢谢:)
【问题讨论】:
-
所以您想要查询可以转换数据并搜索其他数据来填充它?我怀疑 mongo 可以做那些复杂的事情,你总是可以从一个文档中读取 ID,然后查询它们以获取相关信息。解析数据时,您可以使用仅包含您感兴趣的字段的结构,这样程序就不会浪费时间来解析未使用的字段。
-
嗨@JakubDóka,您可以在NodeJS
.populate('event', 'name')中使用Mongoose 非常简单地做到这一点......所以我希望在mgo.v2 中有一个等价的Go。如果不是,那么是的,我将不得不做多个查询。
标签: mongodb go mongodb-query mgo