【发布时间】:2019-01-30 15:19:37
【问题描述】:
我有两个集合,例如清单和任务。两个模式如下所示
清单架构如下所示
{
"_id": "5b7d0f77e231b6b530b0ee5a",
"audit_checklist_type": "Weekly"
}, {
"_id": "5b7d3f33e7a57f38084efb09",
"audit_checklist_type": "Daily"
}
任务架构如下所示
{
"_id": "5b7d65daf74be318e8378cf9",
"checklist_id": "5b7d3f33e7a57f38084efb09"
}, {
"_id": "5b7d662df74be318e8378cfb",
"checklist_id": "5b7d3f33e7a57f38084efb09"
}
我的查询是
AuditChecklist.aggregate([
{
$match: {
$and: [
audit_checklist_type: "Daily"
]
},
},
{
$lookup: {
from: 'AuditTask',
localField: '_id',
foreignField: 'checklist_id',
as: 'TaskData',
},
},
]).exec()
我正在尝试获得类似的输出
{
"_id": "5b7d3f33e7a57f38084efb09",
"TaskData ": [{
"_id": "5b7d65daf74be318e8378cf9",
"checklist_id": "5b7d3f33e7a57f38084efb09"
},
{
"_id": "5b7d662df74be318e8378cfb",
"checklist_id": "5b7d3f33e7a57f38084efb09"
}
]
}
但对我来说,结果 TaskData 输出为空。 任何帮助是极大的赞赏。提前致谢!
【问题讨论】:
-
您可能在
auditTaskData中获取您的数据,或者您的数据库名称不正确...... -
抱歉,我编辑了它。那只是 TaskData
-
checklist_id的类型是什么?你是直接使用 mongoose 还是 mongoclient? -
我将
checklist_id存储为参考ID,并且我只使用猫鼬 -
用
from: AuditTask.collection.name替换这个from: 'AuditTask'... mongoose 将集合名称复数,所以使用AuditTask你需要使用audittasks或 @ 987654332@
标签: mongodb mongoose aggregation-framework