この場合、2つのグループが必要になります。最初のグループは、用語とカテゴリごとに1つのドキュメントを含むドキュメントのストリームを生成します。
{ $group : {
_id : {
category: "$category",
term: "$term",
},
total: { $sum : 1 }
}
}
次に、2番目のグループは、$ push演算子を使用してカテゴリを配列にマージし、同じ用語を持つすべてのドキュメントを1つにマージします。
{ $group : {
_id : "$_id.category",
terms: {
$push: {
term:"$_id.term",
total:"$total"
}
}
}
}