MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come proiettare solo i campi corrispondenti dell'array nidificato nella query della shell mongo

Ok, il trucco era il framework di aggregazione, in particolare unwind .

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

Sebbene nel caso in cui avessi più corrispondenze secondarie in un singolo oggetto, ciò restituirebbe più risultati anziché nella loro forma raggruppata originale. Suppongo di poter inserire un $group in cantiere, però.

Sebbene i collegamenti correlati che ho trovato suggerissero la riprogettazione dello schema come unica soluzione completa in questo momento, quindi questo è decisamente meglio di niente.