Mongo DB - 数据聚合(在MongoDB 2.1.0中 - 不稳定版本):
db.test.save({serverName:'abc123', info:[12,43,23,10]});
db.test.save({serverName:'abc123', info:[12,22,19,11]});
db.test.aggregate({$group:{_id:"$serverName", infoTotal:{ $sum : "$info"}}});
Response: "errmsg" : "exception: the _id field for a group must not be undefined",
不确定我做错了,例如:http://www.mongodb.org/display/DOCS/Aggregation+Framework+-+%24group
显示了如何执行聚合。
非常感谢一些帮助。感谢。
答案 0 :(得分:0)
有两个问题。
1。)您的某些文档在您的集合中没有serverName。您可以找到他们进行查找({serverName:null})
2。)你需要首先解开数组
以下是一份工作样本:
> db.agg1.find()
{ "_id" : 1, "serverName" : "abc123", "info" : [ 12, 43, 23, 10 ] }
{ "_id" : 2, "serverName" : "abc124", "info" : [ 12, 22, 19, 11 ] }
{ "_id" : 3, "serverName" : "abc124", "info" : [ 1, 25, 2, 11 ] }
> db.agg1.aggregate({$unwind: "$info"},{$group:{_id:"$serverName", infoTotal:{ $sum : "$info"}}});
{
"result" : [
{
"_id" : "abc123",
"infoTotal" : 88
},
{
"_id" : "abc124",
"infoTotal" : 103
}
],
"ok" : 1
}