Bạn có thể thực hiện việc này bằng cách sử dụng .aggregate()
và $redact
nhà điều hành. Trong $cond
của bạn biểu thức bạn cần sử dụng $setIsSubset
để kiểm tra xem tất cả các phần tử trong mảng "sản phẩm" có nằm trong "productIds" hay không. Điều này là do bạn không thể sử dụng $in
trong biểu thức điều kiện
var productIds = [139,72,73,1,6];
db.customers.aggregate([
{ "$redact": {
"$cond": [
{ "$setIsSubset": [ "$products", productIds ] },
"$$KEEP",
"$$PRUNE"
]
}}
])