0

MongoDB でこの問題に遭遇した人が他にいるかどうか疑問に思っています。

$elemMatch別の配列内の配列を検索して、このドキュメント内のネストされた値が、提供する値の配列内にあるかどうかを確認しようとしています。

以下に簡単な例を示します。

db.p.insert({v: [{o: [{s: {e: ["M"] }} ]} ]});
db.p.findOne({"v.o": {"$all": [{"$elemMatch": {"s.e": {"$in": ["M"]}}}]}});
null

ステートメントの理由は、$all各フィールドが配列内のドキュメントに必ずしも存在するとは限らない、いくつかの異なるフィールドに一致できるようにしたいからです。

4

1 に答える 1

0

$allのような演算子を使用した条件のリストではなく、離散値のリストに対して配列プロパティを照合するために使用されます$elemMatch。削除する$allと動作します:

db.p.findOne({"v.o": { $elemMatch: { "s.e": {"$in": ["M"]}}}});
于 2012-09-20T21:11:55.713 に答える