Bạn có thể sử dụng $elemMatch
tốt thôi, bạn chỉ cần đặt $and
/ $or
ở cấp cao nhất.
Ví dụ đầu tiên của bạn sẽ là
db.products.find({
$and: [
{
specification: {
$elemMatch: { key: 'Name', value: 'value 1' }
}
},
{
specification: {
$elemMatch: { key: 'Category', value: { $in: ['value 1', 'value 2'] } }
}
},
{
specification: {
$elemMatch: { key: 'Department', value: 'value 3' }
}
}
]
})