用猫鼬查找后查询子文档
我正在使用猫鼬,并且具有以下结构的文档:
{
user: {
comments: [
{ title: "mpla", active: true },
{ title: "mpla", active: false }
]
}
}
...
如何返回我的所有文档,但只能返回注释数组中的活动注释。
回答如下:您将必须使用mongodb聚合,因此查询将是:
db.collectionName.aggregate(
{
$unwind: $userments
}
)
这将解构comment数组,并将包括其他字段,例如每个文档中包含的id。例如,假设您的文档是:
{ "_id": 1, "user" :
{ "comments":
[ { "title": "mpla", "active" : true }, { "title": "mpla", "active" : false } }]
}
}
一旦运行上面给出的查询,它将得到以下文档:
{ "_id": 1, "user" :
{ "comments": { "title": "mpla", "active" : true }
}
}
}
{ "_id": 1, "user" :
{ "comments": { "title": "mpla", "active" : false }
}
}
}
您现在可以看到,我们有两个单独的文档,您现在可以使用$ match运算符查询它们,并使用$ group运算符将它们重新组合成一个数组。希望能回答您的问题。