В този случай ще ви трябват две групи. Първата група генерира поток от документи с един документ за термин и категория:
{ $group : {
_id : {
category: "$category",
term: "$term",
},
total: { $sum : 1 }
}
}
След това втора група ще обедини всички документи със същия термин в един, като използва оператора $push, за да обедини категориите в масив:
{ $group : {
_id : "$_id.category",
terms: {
$push: {
term:"$_id.term",
total:"$total"
}
}
}
}