Bạn chỉ cần $filter
mảng và chỉ giữ lại những tài liệu con có giá trị giá trị là một tập hợp con của mảng đầu vào của bạn. Lưu ý rằng giá trị đây là một mảng phần tử trong đó phần tử là trường được nhúng value
.
let fruits = ["apple","banana","coconut"];
db.collection.aggregate([
{ "$project": {
"Element": {
"$filter": {
"input": "$Element",
"as": "el",
"cond": {
"$setIsSubset": [ [ "$$el.Value" ], fruits ]
}
}
}
}}
])
Bắt đầu từ MongoDB 3.4 *, bạn có thể sử dụng $in
toán tử trong $project
sân khấu.
db.collection.aggregate([
{ "$project": {
"Element": {
"$filter": {
"input": "$Element",
"as": "el",
"cond": {
"$in": [ "$$el.Value", fruits ]
}
}
}
}}
])
* Phiên bản MongoDB chưa được phát hành tại thời điểm viết bài này