Mongodb 获取mongoose数组中子文档值的计数
我收集了身份证和联系人的文件。Contact是包含子文档的数组 我正在尝试获取isActive=Y的联系人计数。还需要根据id查询集合。整个查询可以是 选择计数(contact.isActive=Y),其中_id='601ad0227b25254647823713'Mongodb 获取mongoose数组中子文档值的计数,mongodb,mongoose,Mongodb,Mongoose,我收集了身份证和联系人的文件。Contact是包含子文档的数组 我正在尝试获取isActive=Y的联系人计数。还需要根据id查询集合。整个查询可以是 选择计数(contact.isActive=Y),其中_id='601ad0227b25254647823713' 我第一次使用mongo和mongoose。如果我无法正确解释,请编辑该问题。您可以使用如下聚合管道: 首先$match仅获取具有所需\u id的文档 然后$unwind在数组中获取不同的值 再次匹配以获得isActive值为Y的
我第一次使用mongo和mongoose。如果我无法正确解释,请编辑该问题。您可以使用如下聚合管道:
- 首先
仅获取具有所需$match
的文档\u id
- 然后
在数组中获取不同的值$unwind
- 再次匹配以获得
值为isActive
的值Y
- 和
为存在的每个文档添加一个(即使用$group
=Y统计文档)。计数存储在字段isActive
中total
db.collection.aggregate([
{
"$match": {"id": 1}
},
{
"$unwind": "$contact"
},
{
"$match": {"contact.isActive": "Y"}
},
{
"$group": {
"_id": "$id",
"total": {"$sum": 1}
}
}
])