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

Spring Data Mongo - Como obter o array distinto aninhado para valor aninhado?


Você pode obter tecnologias distintas (technology elementos da matriz) com esta agregação:
db.depts.aggregate( [
  {
       $unwind: "$departments.subdepts"
  },
  {
       $unwind: "$departments.subdepts.technology"
  },
  {
       $match: { "departments.subdepts.subdeptCd": "1D" }
  },
  {
       $group: { _id: "$departments.subdepts.technology.technologyCd", tech: { $first: "$departments.subdepts.technology" } }
  },
  {
      $replaceRoot: { newRoot: "$tech" }
  }
] )