Bạn phải sử dụng $ elemMatch để truy vấn tài liệu nhúng trong một mảng nếu bạn muốn truy vấn với nhiều trường tài liệu nhúng. Vì vậy, truy vấn của bạn sẽ như thế này:
db.collection.find( {
"A": { $elemMatch: { name: "x", value: "1" } }
})
Nếu bạn muốn các tài liệu truy vấn có (name:"x", value:"1")
hoặc (name:"y", value:"2")
trong cùng một truy vấn, bạn có thể sử dụng $or
với elemMatch như thế này:
db.collection.find( {
$or: [
{ "A": { $elemMatch: { name: "x", value: "1" } } },
{ "A": { $elemMatch: { name: "y", value: "2" } } }
]
})
Nếu bạn muốn các tài liệu truy vấn có (name:"x", value:"1")
và (name:"y", value:"2")
trong cùng một truy vấn, bạn có thể sử dụng $and
với elemMatch như thế này:
db.collection.find( {
$and: [
{ "A": { $elemMatch: { name: "x", value: "1" } } },
{ "A": { $elemMatch: { name: "y", value: "2" } } }
]
})