3.6 Cập nhật:
Sử dụng $match
với $expr
. $expr
cho phép sử dụng các biểu thức tổng hợp bên trong $match
sân khấu.
db.collection.aggregate([
{"$match":{
"$expr":{
"$eq":[
{"$size":{"$setIntersection":["$FirstArray.Name","$SecondArray.Name"]}},
0
]
}
}},
{"$project":{"_id":1}}
])
Phiên bản cũ:
Bạn có thể thử $redact
với $setIntersection
cho truy vấn của bạn.
$setIntersection
để so sánh FirstArray
s Name
s với SecondArray
s Name
s và trả về mảng tài liệu tên thông thường theo sau là $size
và $redact
và so sánh kết quả với 0
để giữ và xóa tài liệu khác.
db.collection.aggregate(
[{
$redact: {
$cond: {
if: {
$eq: [{
$size: {
$setIntersection: ["$FirstArray.Name", "$SecondArray.Name"]
}
}, 0]
},
then: "$$KEEP",
else: "$$PRUNE"
}
}
}, {
$project: {
_id: 1
}
}]
)