Truy vấn $ in in find được thiết kế để trả về tài liệu thay vì tài liệu con. Trong trường hợp của bạn, mongoDB đã cung cấp khung tổng hợp. Điều này sẽ giúp bạn lọc các tài liệu phụ.
Đối với mongoDB <=3.0.x
db.collection.aggregate(
{ $project: { Brand: 1}},
{ $unwind: '$Brand'},
{ $match: { "Brand.name" : { $in : ["Reebok", "Adidas"]}}},
{ $group: { _id: '$_id', Brand: {$push : '$Brand' }}}
)
MongoDB 3.2 cách
db.collection.aggregate([
{
$project: {
Brand: {
$filter: {
input: "$Brand",
as: "Brand",
cond: { "$$Brand.name": { $in : ["Reebok", "Adidas"]}}
}
}
}
}
])