Ok, tricket var aggregeringsrammen, specifikt afslapning .
> db.mytest.aggregate({$unwind: '$top'},
{$unwind: '$top.nest'},
{$match: {'top.nest.p': 6}}
)
Selvom i det tilfælde, hvor jeg havde flere undermatches i et enkelt objekt, ville dette returnere flere resultater i stedet for i deres oprindelige grupperede form. Jeg formoder, at jeg kan sætte en $group
dog i pipelinen.
Selvom de relaterede links, jeg fandt, foreslog skema-redesign som den eneste komplette rettelse lige nu, så er dette bestemt bedre end ingenting.