0

次のドキュメント構造があります。

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

「category[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 に答える