MongoDB查询中的$sum

MongoDB查询中的$sum,mongodb,aggregation-framework,nosql,Mongodb,Aggregation Framework,Nosql,我必须从下面的集合中找到总票数(有趣+有用+酷)。 如何使用Mongo聚合函数实现这一点 { "_id" : ObjectId("5419a8856039fe9f52640bd1"), "votes" : { "funny" : 0, "useful" : 2, "cool" : 1 }, "business_id" : "vcNAWiLM4dR7D2nwwJ7nCA" } , { "_id" : Obje

我必须从下面的集合中找到总票数(有趣+有用+酷)。 如何使用Mongo聚合函数实现这一点

{
    "_id" : ObjectId("5419a8856039fe9f52640bd1"),
    "votes" : {
        "funny" : 0,
        "useful" : 2,
        "cool" : 1
    },

    "business_id" : "vcNAWiLM4dR7D2nwwJ7nCA"
}
,
{
    "_id" : ObjectId("5419a8866039fe9f52640bd2"),
    "votes" : {
        "funny" : 0,
        "useful" : 2,
        "cool" : 0
    },

    "business_id" : "vcNAWiLM4dR7D2nwwJ7nCA"
}
我尝试了以下方法

db.review.aggregate([ { 
    $project: { 

        total_votes:  
           "$votes.funny"+ "$votes.useful"  + "$votes.cool"

    } 
} ] ,
{
   allowDiskUse : true
}) 
但是我越来越

未捕获异常:聚合失败:{“errmsg”:“异常: 聚合结果超过最大文档大小(16MB)”,“代码”: 16389,“确定”:0}

是否有其他方法可以实现此目的?

您可以使用聚合运算符来实现此目的:

db.review.aggregate([
{$项目:{
总投票数:{$add:['$voces.fully','$voces.fully','$voces.cool']}
}}
])
输出:

{
“结果”:[
{
“_id”:ObjectId(“5419a8856039fe9f52640bd1”),
“总票数”:3
}, 
{
“_id”:ObjectId(“5419a8866039fe9f52640bd2”),
“总票数”:2
}
],
“好”:1
}
您可以使用聚合运算符执行以下操作:

db.review.aggregate([
{$项目:{
总投票数:{$add:['$voces.fully','$voces.fully','$voces.cool']}
}}
])
输出:

{
“结果”:[
{
“_id”:ObjectId(“5419a8856039fe9f52640bd1”),
“总票数”:3
}, 
{
“_id”:ObjectId(“5419a8866039fe9f52640bd2”),
“总票数”:2
}
],
“好”:1
}
您可以使用聚合运算符执行以下操作:

db.review.aggregate([
{$项目:{
总投票数:{$add:['$voces.fully','$voces.fully','$voces.cool']}
}}
])
输出:

{
“结果”:[
{
“_id”:ObjectId(“5419a8856039fe9f52640bd1”),
“总票数”:3
}, 
{
“_id”:ObjectId(“5419a8866039fe9f52640bd2”),
“总票数”:2
}
],
“好”:1
}
您可以使用聚合运算符执行以下操作:

db.review.aggregate([
{$项目:{
总投票数:{$add:['$voces.fully','$voces.fully','$voces.cool']}
}}
])
输出:

{
“结果”:[
{
“_id”:ObjectId(“5419a8856039fe9f52640bd1”),
“总票数”:3
}, 
{
“_id”:ObjectId(“5419a8866039fe9f52640bd2”),
“总票数”:2
}
],
“好”:1
}

可以这样做-

db.review.aggregate([ 
{ $project : { 'total_votes' : { $add : ["$votes.funny", "$votes.useful", "$votes.cool" ]  } }  }
])

希望结果正是您所需要的。

可以这样做-

db.review.aggregate([ 
{ $project : { 'total_votes' : { $add : ["$votes.funny", "$votes.useful", "$votes.cool" ]  } }  }
])

希望结果正是您所需要的。

可以这样做-

db.review.aggregate([ 
{ $project : { 'total_votes' : { $add : ["$votes.funny", "$votes.useful", "$votes.cool" ]  } }  }
])

希望结果正是您所需要的。

可以这样做-

db.review.aggregate([ 
{ $project : { 'total_votes' : { $add : ["$votes.funny", "$votes.useful", "$votes.cool" ]  } }  }
])
希望结果正是你所需要的