如何解决查询文档以遍历Array并使用$ cond对mongodb中JSON的特定属性求和
我有一个JSON
数组,如下所示:
let x = [{"Data":"Chocolate","Company":"FiveStar"},{"Data":"Biscuit","Company":"Parle"},{"Data":"Chocolate","Company":"DairyMilk"}]
这是JSON
的示例数组。我想做的是如何使用MongoDB $cond
对“数据”等于Chocolate的所有字段进行计数?
解决方法
如果您想坚持使用$cond
,则可以这样运行查询:
db.collection.aggregate([
{
$match: {
Data: "Chocolate"
}
},{
$group: {
_id: "$Data",count: {
$sum: {
$cond: [
{
$eq: [
"$Data","Chocolate"
]
},1,0
]
}
}
}
}
])
您可以查看此查询here的结果。
您可以看到,首先我得到Data
等于$match为“巧克力”的所有元素。
稍后,我们可以使用$sum来获取与$cond匹配的元素的数量,如果相等则返回1
,否则返回0
。
在这种情况下,我们只剩下等于“巧克力”的Data
。
当然,简单地运行起来会更快,更容易:
db.collection.aggregate([
{
$match: {
Data: "Chocolate"
}
},{
$count: "count"
}
])
此查询示例here。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。