MongoDB でこの問題に遭遇した人が他にいるかどうか疑問に思っています。
$elemMatch
別の配列内の配列を検索して、このドキュメント内のネストされた値が、提供する値の配列内にあるかどうかを確認しようとしています。
以下に簡単な例を示します。
db.p.insert({v: [{o: [{s: {e: ["M"] }} ]} ]});
db.p.findOne({"v.o": {"$all": [{"$elemMatch": {"s.e": {"$in": ["M"]}}}]}});
null
ステートメントの理由は、$all
各フィールドが配列内のドキュメントに必ずしも存在するとは限らない、いくつかの異なるフィールドに一致できるようにしたいからです。