【发布时间】:2018-12-11 16:14:41
【问题描述】:
我正在使用以下聚合查询从两个集合中获取数据:
let condition = {assignId:mongoose.Types.ObjectId(req.params.id)};
Project.aggregate([
{
$match: condition
},
{
"$group":{
"_id": "$_id"
}
},
{
"$lookup": {
"from": "worksheets",
"let": { "projectId": "$_id" },
"pipeline": [
{ "$match": { "$expr": { "$eq": [ "$projectId", "$$projectId" ] }}},
{ "$group": {_id:"$projectId", totalHours:{"$sum": "$hours"}}}
],
"as": "project"
}
}
])
.then((data)=>{
res.json(data);
})
并得到以下结果:
[
{
"_id": "5c0a4083753a321c6c4ee024",
"project": [
{
"_id": "5c0a4083753a321c6c4ee024",
"totalHours": 10
}
]
},
{
"_id": "5c0a2a8897e71a0d28b910ac",
"project": [
{
"_id": "5c0a2a8897e71a0d28b910ac",
"totalHours": 6
}
]
}
]
我想填充项目数组中的 _id 字段。我应该为此做哪些改变?
【问题讨论】:
标签: mongodb mongoose mongodb-query aggregation-framework