2014-02-22 250 views
1

我有一个问题。我怎样才能在mongo聚合模块中的特定行进行求和?与总和的Mongo聚合

我的文件看起来是这样的:

{ 
    "_id" : "315" 
    "city" : "Dallas",  
    "population" : 3400, 
    "state" : "Unknown" 
} 

我怎么能做出基于状态和计数/和人口的聚集? Ÿ想这一点,但什么是错的:

db.mydb.aggregate([{"$group":{"$state":"$state", "population":$sum}}]) 

回答

2

您必须指定“_id”在汇聚组和“人口”的文件并不是指你的“人口”项目,它指的是结果项目。所以你必须这样做:

db.mydb.aggregate([ 
    {"$group":{"_id":"$state", "populationresult":{$sum:"$population"}}} 
]) 

我希望它有帮助!

+1

从“应该”更改为**必须**。这是**必需**。并请修正拼写。另外作为通用文档术语,除非明确使用问题中使用的相同“集合”名称,否则请使用'db.collection'作为表单。请不要使用您在测试中使用的“任何”,因为它会混淆问题。 –