如何通过特定的数组插槽在MongoDB中进行分组?

时间:2012-11-20 14:44:14

标签: mongodb

我有以下文档结构:

{ "product": "x",
  "category": [ {"name": "y1", "id": "z1"},
        {"name": "y2", "id": "z2"}]
}

如何只按数组的第一个值进行分组,例如“category [0]”?我已尝试过“category.0”和“category [0]”,返回的结果只是一个包含所有文档的组。

由于

1 个答案:

答案 0 :(得分:2)

如果您使用的是MongoDB 2.2,则可以使用$ unwind运算符,例如:

db.test.aggregate( {$project : {product:1, category:1}}, {$unwind: "$category"},{$group: {_id: "$category.name", productsPerCategory: {$sum:1}}})

此处描述了聚合框架:http://docs.mongodb.org/manual/applications/aggregation/