Просто трябва да $filter
масива и запазете само онези поддокументи, където стойността е подмножество от вашия входен масив. Имайте предвид, че стойност ето един масив от елементи, където елементът е вграденото поле value
.
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 към момента на писане