MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Grupo aninhado do MongoDB?


Você precisará de dois grupos neste caso. O primeiro grupo gera um fluxo de documentos com um documento por termo e categoria:
 { $group : { 
      _id :  { 
        category: "$category",
        term: "$term",
      },
      total: { $sum : 1 } 
   }
 }

Um segundo grupo mesclará todos os documentos com o mesmo termo em um, usando o operador $push para mesclar as categorias em uma matriz:
 { $group : { 
      _id :  "$_id.category",
      terms: { 
          $push: { 
              term:"$_id.term",
              total:"$total"
          }
      }
   }
 }