Du skal bruge $elemMatch for at forespørge på indlejrede dokumenter i et array, hvis du vil forespørge med flere felter af indlejret dokument. Så din forespørgsel skulle være sådan her:
db.collection.find( {
"A": { $elemMatch: { name: "x", value: "1" } }
})
Hvis du ønsker forespørgselsdokumenter, som har (name:"x", value:"1") eller (name:"y", value:"2") i samme forespørgsel kan du bruge $or med elemMatch sådan her:
db.collection.find( {
$or: [
{ "A": { $elemMatch: { name: "x", value: "1" } } },
{ "A": { $elemMatch: { name: "y", value: "2" } } }
]
})
Hvis du ønsker forespørgselsdokumenter, som har (name:"x", value:"1") og (name:"y", value:"2") i samme forespørgsel kan du bruge $and med elemMatch sådan her:
db.collection.find( {
$and: [
{ "A": { $elemMatch: { name: "x", value: "1" } } },
{ "A": { $elemMatch: { name: "y", value: "2" } } }
]
})