$filter
するだけです 配列を保持し、 valueが存在するサブドキュメントのみを保持します 入力配列のサブセットです。 値に注意してください これは、elementが埋め込みフィールドvalue
である1つの要素配列です。 。
let fruits = ["apple","banana","coconut"];
db.collection.aggregate([
{ "$project": {
"Element": {
"$filter": {
"input": "$Element",
"as": "el",
"cond": {
"$setIsSubset": [ [ "$$el.Value" ], fruits ]
}
}
}
}}
])
MongoDB 3.4 *以降では、$in
を使用できます $project
の演算子 ステージ。
db.collection.aggregate([
{ "$project": {
"Element": {
"$filter": {
"input": "$Element",
"as": "el",
"cond": {
"$in": [ "$$el.Value", fruits ]
}
}
}
}}
])
*この記事の執筆時点でのMongoDBの未リリースバージョン