我有以下文档结构:
{ "product": "x",
"category": [ {"name": "y1", "id": "z1"},
{"name": "y2", "id": "z2"}]
}
如何只按数组的第一个值进行分组,例如“category [0]”?我已尝试过“category.0”和“category [0]”,返回的结果只是一个包含所有文档的组。
由于
答案 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/