Vous aurez besoin de deux groupes dans ce cas. Le premier groupe génère un flux de documents avec un document par terme et catégorie :
{ $group : {
_id : {
category: "$category",
term: "$term",
},
total: { $sum : 1 }
}
}
Un deuxième groupe fusionnera alors tous les documents avec le même terme en un seul, en utilisant l'opérateur $push pour fusionner les catégories dans un tableau :
{ $group : {
_id : "$_id.category",
terms: {
$push: {
term:"$_id.term",
total:"$total"
}
}
}
}