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