Anda harus menggunakan $elemMatch untuk menanyakan dokumen yang disematkan dalam larik jika Anda ingin membuat kueri dengan beberapa bidang dokumen yang disematkan. Jadi kueri Anda harus seperti ini:
db.collection.find( {
"A": { $elemMatch: { name: "x", value: "1" } }
})
Jika Anda menginginkan dokumen kueri yang memiliki (name:"x", value:"1")
atau (name:"y", value:"2")
dalam kueri yang sama, Anda dapat menggunakan $or
dengan elemMatch seperti ini:
db.collection.find( {
$or: [
{ "A": { $elemMatch: { name: "x", value: "1" } } },
{ "A": { $elemMatch: { name: "y", value: "2" } } }
]
})
Jika Anda menginginkan dokumen kueri yang memiliki (name:"x", value:"1")
dan (name:"y", value:"2")
dalam kueri yang sama, Anda dapat menggunakan $and
dengan elemMatch seperti ini:
db.collection.find( {
$and: [
{ "A": { $elemMatch: { name: "x", value: "1" } } },
{ "A": { $elemMatch: { name: "y", value: "2" } } }
]
})