0

我有,比如说 100 行。在每个集合中,都有一个“id”字段。假设有 100 行,20 行的“id”为 10,30 行的“id”为 11,50 行的“id”为 12。我的查询应返回:10 - 20(计数)11 - 30(计数) 12 - 50(计数)。

如何编写此查询?

4

1 回答 1

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/

于 2012-06-14T08:18:11.093 回答