Avrai bisogno di due gruppi in questo caso. Il primo gruppo genera un flusso di documenti con un documento per termine e categoria:
{ $group : {
_id : {
category: "$category",
term: "$term",
},
total: { $sum : 1 }
}
}
Un secondo gruppo unirà quindi tutti i documenti con lo stesso termine in uno solo, utilizzando l'operatore $push per unire le categorie in un array:
{ $group : {
_id : "$_id.category",
terms: {
$push: {
term:"$_id.term",
total:"$total"
}
}
}
}