我有,比如说 100 行。在每个集合中,都有一个“id”字段。假设有 100 行,20 行的“id”为 10,30 行的“id”为 11,50 行的“id”为 12。我的查询应返回:10 - 20(计数)11 - 30(计数) 12 - 50(计数)。
如何编写此查询?
我有,比如说 100 行。在每个集合中,都有一个“id”字段。假设有 100 行,20 行的“id”为 10,30 行的“id”为 11,50 行的“id”为 12。我的查询应返回:10 - 20(计数)11 - 30(计数) 12 - 50(计数)。
如何编写此查询?
如果您的收藏名为“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/