V tomto případě budete potřebovat dvě skupiny. První skupina generuje proud dokumentů s jedním dokumentem na termín a kategorii:
{ $group : {
_id : {
category: "$category",
term: "$term",
},
total: { $sum : 1 }
}
}
Druhá skupina pak sloučí všechny dokumenty se stejným termínem do jednoho, pomocí operátoru $push sloučí kategorie do pole:
{ $group : {
_id : "$_id.category",
terms: {
$push: {
term:"$_id.term",
total:"$total"
}
}
}
}