Трябва да използвате $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" } } }
]
})