Ok, il trucco era il framework di aggregazione, in particolare unwind .
> db.mytest.aggregate({$unwind: '$top'},
{$unwind: '$top.nest'},
{$match: {'top.nest.p': 6}}
)
Sebbene nel caso in cui avessi più corrispondenze secondarie in un singolo oggetto, ciò restituirebbe più risultati anziché nella loro forma raggruppata originale. Suppongo di poter inserire un $group
in cantiere, però.
Sebbene i collegamenti correlati che ho trovato suggerissero la riprogettazione dello schema come unica soluzione completa in questo momento, quindi questo è decisamente meglio di niente.