Ok, sztuczka polegała na strukturze agregacji, a konkretnie na rozwijaniu .
> db.mytest.aggregate({$unwind: '$top'},
{$unwind: '$top.nest'},
{$match: {'top.nest.p': 6}}
)
Chociaż w przypadku, gdy miałem wiele dopasowań podrzędnych w jednym obiekcie, zwróciłoby to wiele wyników zamiast ich oryginalnej zgrupowanej postaci. Przypuszczam, że mogę umieścić $group
do rurociągu.
Chociaż powiązane linki, które znalazłem, sugerowały przeprojektowanie schematu jako jedyną kompletną naprawę w tej chwili, więc jest to zdecydowanie lepsze niż nic.