【发布时间】:2018-07-11 09:49:38
【问题描述】:
我正在尝试匹配同一文档中的两个不同字段。但没有得到我想要的预期输出。 让我举个例子。
我想在同一文档中匹配weighted.phaseId 和phases._id,不匹配应从phases 字段中删除。
有人有想法吗?
// 在数据库上处理一些聚合查询后的文档。
{
"_id" : ObjectId("5a680c803096130f93d11c7a"),
"weighted" : [
{
"phaseId" : ObjectId("5a6734c32414e15d0c2920f0"),
"_id" : ObjectId("5a680c803096130f93d11c7b")
},
{
"phaseId" : ObjectId("5a6734c32414e15d0c2920ee"),
"_id" : ObjectId("5a680c803096130f93d11c7c")
}
],
"phases" : [
{
"phase_name" : "Phase 1",
"_id" : ObjectId("5a6734c32414e15d0c2920f0")
},
{
"phase_name" : "Phase 2",
"_id" : ObjectId("5a6734c32414e15d0c2920ef")
},
{
"phase_name" : "Phase 3",
"_id" : ObjectId("5a6734c32414e15d0c2920ee")
},
{
"phase_name" : "Phase 4",
"_id" : ObjectId("5a6734c32414e15d0c2920ed")
}
]
}
// 预期输出
{
"_id" : ObjectId("5a680c803096130f93d11c7a"),
"weighted" : [
{
"phaseId" : ObjectId("5a6734c32414e15d0c2920f0"),
"_id" : ObjectId("5a680c803096130f93d11c7b")
},
{
"phaseId" : ObjectId("5a6734c32414e15d0c2920ee"),
"_id" : ObjectId("5a680c803096130f93d11c7c")
}
],
"phases" : [
{
"phase_name" : "Phase 1",
"_id" : ObjectId("5a6734c32414e15d0c2920f0")
},
{
"phase_name" : "Phase 3",
"_id" : ObjectId("5a6734c32414e15d0c2920ee")
}
]
}
【问题讨论】:
-
你做了什么聚合?以及原始文档结构?
标签: node.js mongodb mongoose aggregate