【发布时间】:2018-08-06 11:18:20
【问题描述】:
我有两个集合,我试图将它们聚合在一起以产生以下所需的输出,但我正在努力解决如何限制查找返回的数组中的字段。任何帮助将不胜感激。
project
{
_id: ObjectId("ABC")
projectName: "Project One"
}
user
{
_id: ObjectId("...")
email: "test1@test.co.uk",
firstname: "Test1",
lastname: "Record",
project: [{projectId: ObjectId("ABC")}]
},
{
_id: ObjectId("...")
email: "test2@test.co.uk",
firstname: "Test2",
lastname: "Record",
project: [{projectId: ObjectId("ABC")}, {projectId: ObjectId("DEF")}]
}
想要的输出
{
projectName: "Project One"
userDetail: [{firstname: "Test1",lastname: "Record"},
{firstname: "Test2",lastname: "Record"}]
}
目前的工作
db.project.aggregate([{$match: {_id: ObjectId("ABC")}}
, {$lookup: {
from: "user",
localField: "_id",
foreignField: "project.projectId",
as: "userDetail"
}
}
, {$project: {_id: 1, projectName: 1}}
]).pretty()
【问题讨论】:
标签: mongodb aggregation-framework