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

Cómo proyectar solo campos coincidentes de una matriz anidada en la consulta de mongo Shell

Ok, el truco fue el marco de agregación, específicamente desenrollar .

> db.mytest.aggregate({$unwind: '$top'},
                      {$unwind: '$top.nest'},
                      {$match: {'top.nest.p': 6}}
  )

Aunque en el caso de que tuviera múltiples subcoincidencias en un solo objeto, esto devolvería múltiples resultados en lugar de su forma agrupada original. Supongo que puedo poner un $group sin embargo, en la canalización.

Aunque los enlaces relacionados que encontré sugirieron el rediseño del esquema como la única solución completa en este momento, definitivamente es mejor que nada.