$elemMatch を使用する必要があります 埋め込みドキュメントの複数のフィールドでクエリを実行する場合は、配列内の埋め込みドキュメントをクエリします。したがって、クエリは次のようになります。
db.collection.find( {
"A": { $elemMatch: { name: "x", value: "1" } }
})
(name:"x", value:"1")
を持つクエリドキュメントが必要な場合 または (name:"y", value:"2")
同じクエリで、$or
を使用できます 次のようなelemMatchを使用します:
db.collection.find( {
$or: [
{ "A": { $elemMatch: { name: "x", value: "1" } } },
{ "A": { $elemMatch: { name: "y", value: "2" } } }
]
})
(name:"x", value:"1")
を持つクエリドキュメントが必要な場合 および (name:"y", value:"2")
同じクエリで、$and
を使用できます 次のようなelemMatchを使用します:
db.collection.find( {
$and: [
{ "A": { $elemMatch: { name: "x", value: "1" } } },
{ "A": { $elemMatch: { name: "y", value: "2" } } }
]
})