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.