假设我有一个这样的集合:
{
_id: 1,
city: "New York",
state: "NY",
murders: 328
}
{
_id: 2,
city: "Los Angeles",
state: "CA",
murders: 328
}
...
该系列向我们展示了美国所有城市的谋杀案数量。我想计算一下全国谋杀案的平均数。我尝试使用
$group:
db.murders.aggregate([{$group: {_id:"$state", pop: {$avg:"$murders"} } }])
但我得到了各州的谋杀结果:
{ "_id" : "NY", "murders" : 200 }
{ "_id" : "NJ", "murders" : 150 }
{ "_id" : "CA", "murders" : 230 }
{ "_id" : "CT", "murders" : 120 }
我的问题是,如何对此结果进行分组以计算唯一平均值?像这样:
{ "_id" : "USA", "murders" : 175 }
尝试按 null 分组。
db.murders.aggregate([{$group: {_id:null, pop: {$avg:"$murders"} } }])
更多信息: mongo-average-aggregation-query-with-no-group