検索クエリの$inは、サブドキュメントではなくドキュメントを返すように設計されています。あなたの場合、mongoDBは集約フレームワークを提供しています。これは、サブドキュメントをフィルタリングするのに役立ちます。
mongoDB <=3.0.xの場合
db.collection.aggregate(
{ $project: { Brand: 1}},
{ $unwind: '$Brand'},
{ $match: { "Brand.name" : { $in : ["Reebok", "Adidas"]}}},
{ $group: { _id: '$_id', Brand: {$push : '$Brand' }}}
)
MongoDB3.2の方法
db.collection.aggregate([
{
$project: {
Brand: {
$filter: {
input: "$Brand",
as: "Brand",
cond: { "$$Brand.name": { $in : ["Reebok", "Adidas"]}}
}
}
}
}
])