MongoDB聚合框架错误

时间:2016-09-08 14:22:46

标签: mongodb shell aggregation-framework

我有一个这种结构的集合:

{ "_id" : "01002", "city" : "CUSHMAN", "loc" : [ -72.51564999999999, 42.377017 ], "pop" : 36963, "state" : "MA" }

我想使用Aggregate框架来执行此查询:

db.US.aggregate([{$group:{_id:{"state":"$state"}}, sum:{$sum:"$pop"}}])

我收到此错误: "命令'汇总' failed:exception:管道阶段规范对象必须只包含一个字段。 (回复:{" errmsg":"例外:管道阶段规范对象必须只包含一个字段。","代码":16435,"好的":0.0})"

我得到这个错误,看起来很简单  任何人都可以帮忙 感谢

1 个答案:

答案 0 :(得分:3)

你的括号有点不合适。

db.US.aggregate([{$group:{_id:{"state":"$state"}}, sum:{$sum:"$pop"}}])

更改为:

db.US.aggregate([{$group:{_id:{"state":"$state"}, sum:{$sum:"$pop"}}}])

编辑:实际上这更好:

db.US.aggregate([
    {$group:{_id:"$state", sum:{$sum:"$pop"}}}
])

因为它会生成一个平面文档而不是一组id:

{ "_id" : "MA", "sum" : 36963 }
相关问题