わかりました。トリックは、集約フレームワーク、具体的にはアンワインド でした。 。
> db.mytest.aggregate({$unwind: '$top'},
{$unwind: '$top.nest'},
{$match: {'top.nest.p': 6}}
)
1つのオブジェクトに複数のサブ一致がある場合でも、元のグループ化された形式ではなく、複数の結果が返されます。 $group
を置くことができると思います ただし、パイプラインに入れます。
私が見つけた関連リンクは、現時点で唯一の完全な修正としてスキーマの再設計を提案しているので、これは間違いなく何もないよりはましです。