sql >> Database >  >> NoSQL >> MongoDB

Alleen overeenkomende velden van geneste array projecteren in mongo-shellquery

Oké, de truc was het aggregatieraamwerk, met name ontspannen .

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

Hoewel in het geval dat ik meerdere subovereenkomsten in een enkel object had, dit meerdere resultaten zou opleveren in plaats van in hun oorspronkelijke gegroepeerde vorm. Ik veronderstel dat ik een $group . kan plaatsen echter in de pijplijn.

Hoewel de gerelateerde links die ik vond, voorstelden om het schema opnieuw te ontwerpen als de enige complete oplossing op dit moment, dus dit is absoluut beter dan niets.




  1. mongoexport geaggregeerde export naar een csv-bestand

  2. MongoDB-aggregatie per veld bestaat

  3. Mongoose Query:Zoek een element in een array

  4. mongo + passagier:juiste manier om opnieuw verbinding te maken met de database vanuit rails? hoe zorg je voor optimale mongo-prestaties?