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

Como agrupar dados usando mongo-template

  • $match suas condições
  • $group por grau e fazer matriz de documentos raiz em values ,
  • defina os campos obrigatórios e verifique o campo de condição criada isObtained se sport é Badminton então verdadeiro caso contrário falso
db.students.aggregate([
  { $match: { school: "xyz" } },
  {
    $group: {
      _id: "$grade",
      values: {
        $push: {
          sport: "$sport",
          language: "$language",
          Hobbies: "$Hobbies",
          isObtained: {
            $cond: [{ $eq: ["$sport", "Badminton"] }, true, false]
          }
        }
      }
    }
  }
])

Playground

Se você quiser usar a abordagem dinâmica, tente $mergeObjects com $$ROOT ,

Playground