Ok, trikem byl rámec agregace, konkrétně se odvíjet .
> db.mytest.aggregate({$unwind: '$top'},
{$unwind: '$top.nest'},
{$match: {'top.nest.p': 6}}
)
I když v případě, že jsem měl více dílčích shod v jednom objektu, vrátilo by se více výsledků namísto v jejich původní seskupené podobě. Předpokládám, že mohu vložit $group
do potrubí.
Ačkoli související odkazy, které jsem našel, navrhovaly redesign schématu jako jedinou kompletní opravu právě teď, takže je to rozhodně lepší než nic.