如何解决在检查条件之后,使用mongoDB聚合循环遍历对象数组,以计算文档数
我正在尝试在mongoDb中编写聚合查询,在这里我想遍历对象数组并获取满足某些条件的那些对象的计数。 我有一个名为bank []的数组,其中有28-30个对象。我想检查每个对象中是否都存在“ pdf”键,并检查该值是true还是false,并且只返回那些值为true的对象的计数。我该如何使用汇总呢?请帮忙。以下是bank []数组中的示例数据。
banks[{id:1,name: "ABC","pdf": true},{id:2,name:"PQR"},{id:3,name:"XYZ",pdf:"false"}....]
类似地,数组有30个对象。
我想要上面示例的输出是
{id:"1",count:1}
谢谢!
解决方法
您可以使用$size
来获取数组的数量。 $filter
用于根据条件进行过滤。
{
"$project": {
count: {
$size: {
$filter: {
input: "$banks",cond: {
$eq: [
"$$this.pdf",true
]
}
}
}
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。