3.6更新:
$match
を使用する $expr
を使用 。 $expr
$match
内で集計式を使用できるようにします ステージ。
db.collection.aggregate([
{"$match":{
"$expr":{
"$eq":[
{"$size":{"$setIntersection":["$FirstArray.Name","$SecondArray.Name"]}},
0
]
}
}},
{"$project":{"_id":1}}
])
古いバージョン:
$redact
を試すことができます $setIntersection
を使用 クエリ用。
$setIntersection
FirstArray
を比較します ■Name
s with SecondArray
■Name
sおよび$size
が後に続く一般名ドキュメントの配列を返します および$redact
結果を0
と比較します ドキュメントを保持または削除します。
db.collection.aggregate(
[{
$redact: {
$cond: {
if: {
$eq: [{
$size: {
$setIntersection: ["$FirstArray.Name", "$SecondArray.Name"]
}
}, 0]
},
then: "$$KEEP",
else: "$$PRUNE"
}
}
}, {
$project: {
_id: 1
}
}]
)