キーと値はまったく同じであるため、最終結果で何をしたいのかよくわかりません。それでも、 $unwind
それを平坦化する演算子。つまり、配列エントリごとに各ドキュメントのコピーを生成します。
値の配列をフラット化した後、 $group
値を集計するための累積演算子。 $project
演算子は、前のグループ化のフィールドを目的の形式に整形します。
この例に従って、概念を理解してください。
templateAttributes.aggregate([
{ "$match": { "platform": "V1" } },
{ "$unwind": "$available.Community.attributes.type.values" },
{
"$group": {
"_id": "$available.Community.attributes.type.values",
"value": { "$first": "$available.Community.attributes.type.values" }
}
},
{
"$project": {
"_id": 0,
"label": "$_id",
"value": 1
}
}
])
Meteorを使用しているため、meteorは meteorhacks:aggregate
を追加します
Meteorの適切な集約サポートが追加されるため、コレクションで上記の集約パイプラインを実行できます。