Je moet $elemMatch gebruiken om ingesloten documenten in een array te doorzoeken als u een query wilt uitvoeren met meerdere velden van een ingesloten document. Dus uw vraag zou als volgt moeten zijn:
db.collection.find( {
"A": { $elemMatch: { name: "x", value: "1" } }
})
Als u documenten wilt opvragen met (name:"x", value:"1")
of (name:"y", value:"2")
in dezelfde zoekopdracht kunt u $or
. gebruiken met elemMatch als volgt:
db.collection.find( {
$or: [
{ "A": { $elemMatch: { name: "x", value: "1" } } },
{ "A": { $elemMatch: { name: "y", value: "2" } } }
]
})
Als u documenten wilt opvragen met (name:"x", value:"1")
en (name:"y", value:"2")
in dezelfde zoekopdracht kun je $and
. gebruiken met elemMatch als volgt:
db.collection.find( {
$and: [
{ "A": { $elemMatch: { name: "x", value: "1" } } },
{ "A": { $elemMatch: { name: "y", value: "2" } } }
]
})