0

我有以下文档结构:

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

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

谢谢

4

1 回答 1

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/

于 2012-11-20T15:25:30.337 回答