如何解决MongoDB / Mongoose:名称匹配时使用$ sum来计算数量
我在mongodb集合中有一些数据,如下所示:
[
{
"name" : "Apple","quantity" : "4",},{
"name" : "Apple","quantity" : "6",{
"name" : "Orange","quantity" : "2","quantity" : "3",]
我试图找出一个mongodb查询,然后找出它的猫鼬对应对象,在这里我可以利用$ sum来获得所有唯一名称及其各自的总和。因此查询后的正确输出应如下所示:
[
{
name: "Apple",totalQuantity: "10"
},{
name: "Orange",totalQuantity: "5"
}
解决方法
$group将按指定的字段对文档进行分组,
-
$group
由name
-
$toInt
将字符串quantity
转换为整数,并将$sum
转换为totalQuantity
db.collection.aggregate([
{
$group: {
_id: "$name",totalQuantity: {
$sum: { $toInt: "$quantity" }
}
}
},{
$project: {
_id: 0,name: "$_id",totalQuantity: 1
}
}
])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。