Jednoduše musíte $filter pole a ponechat pouze ty vnořené dokumenty, kde je hodnota je podmnožinou vašeho vstupního pole. Všimněte si, že hodnota zde je jedno pole prvků, kde prvek je vložené pole value .
let fruits = ["apple","banana","coconut"];
db.collection.aggregate([
{ "$project": {
"Element": {
"$filter": {
"input": "$Element",
"as": "el",
"cond": {
"$setIsSubset": [ [ "$$el.Value" ], fruits ]
}
}
}
}}
])
Počínaje MongoDB 3.4* můžete použít $in operátor v $project fázi.
db.collection.aggregate([
{ "$project": {
"Element": {
"$filter": {
"input": "$Element",
"as": "el",
"cond": {
"$in": [ "$$el.Value", fruits ]
}
}
}
}}
])
*Nevydaná verze MongoDB v době psaní tohoto článku