sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Grupo anidado MongoDB?

Necesitará dos grupos en este caso. El primer grupo genera un flujo de documentos con un documento por término y categoría:

 { $group : { 
      _id :  { 
        category: "$category",
        term: "$term",
      },
      total: { $sum : 1 } 
   }
 }

Luego, un segundo grupo fusionará todos los documentos con el mismo término en uno, utilizando el operador $push para fusionar las categorías en una matriz:

 { $group : { 
      _id :  "$_id.category",
      terms: { 
          $push: { 
              term:"$_id.term",
              total:"$total"
          }
      }
   }
 }