Musíte použít $elemMatch k dotazu na vložené dokumenty v poli, pokud chcete dotazovat s více poli vloženého dokumentu. Váš dotaz by tedy měl znít takto:
db.collection.find( {
"A": { $elemMatch: { name: "x", value: "1" } }
})
Pokud chcete dotazovat dokumenty, které mají (name:"x", value:"1")
nebo (name:"y", value:"2")
ve stejném dotazu můžete použít $or
s elemMatch takto:
db.collection.find( {
$or: [
{ "A": { $elemMatch: { name: "x", value: "1" } } },
{ "A": { $elemMatch: { name: "y", value: "2" } } }
]
})
Pokud chcete dotazovat dokumenty, které mají (name:"x", value:"1")
a (name:"y", value:"2")
ve stejném dotazu můžete použít $and
s elemMatch takto:
db.collection.find( {
$and: [
{ "A": { $elemMatch: { name: "x", value: "1" } } },
{ "A": { $elemMatch: { name: "y", value: "2" } } }
]
})