我有,比方说100行。在每个集合中,都有一个“id”字段。 让我们说100行,20行的'id'为10,30行的'id'为11,50行的'id'为12。 我的查询应该返回: 10 - 20(计数) 11 - 30(计数) 12 - 50(计数)。
如何撰写此查询?
答案 0 :(得分:2)
如果您的收藏名为“foo”,则以下内容将有效。
> db.foo.group({
key: {id: true},
initial: {count: 0},
reduce: function(doc, aggregator) {
aggregator.count += 1;
}
})
它将产生如下结果:
[
{
"id" : 10,
"count" : 20
},
{
"id" : 11,
"count" : 30
},
{
"id" : 12,
"count" : 50
}
]
有关group()的详细信息,以及一些示例,例如:http://www.mongodb.org/display/DOCS/Aggregation
新的聚合框架实质上更为复杂。你可以在这里找到它:http://docs.mongodb.org/manual/applications/aggregation/