我有一个像这样的“公司”系列:
{
"_id" : ObjectId("58c52a26de0bdd9311000004"),
"name" : "ed",
"projects" : [ ],
"__v" : 0,
"users" : [
ObjectId("58c52a36de0bdd9311000007"),
ObjectId("58c52a54de0bdd931100000a")
]
}
我想从用户那里获得一些信息;我是否必须进行查询以获取ObjectID和另一个查询给每个用户?
或者有没有办法直接从查询到公司获取此信息?
答案 0 :(得分:1)
如果两个集合都在同一个数据库中,您可以使用查找聚合从用户集合中获取数据。
在同一个中执行左外部联接到未整数的集合 数据库从“已加入”集合中过滤文档 处理。 $ lookup阶段在字段之间进行相等匹配 从输入文件中提取一个字段的文件 “加入”系列。
基本语法: -
{
$lookup:
{
from: <collection to join>,
localField: <field from the input documents>,
foreignField: <field from the documents of the "from" collection>,
as: <output array field>
}
}