3.6 Atualização:
Use
$match
com $expr
. $expr
permite o uso de expressões de agregação dentro de $match
palco. db.collection.aggregate([
{"$match":{
"$expr":{
"$eq":[
{"$size":{"$setIntersection":["$FirstArray.Name","$SecondArray.Name"]}},
0
]
}
}},
{"$project":{"_id":1}}
])
Versão antiga:
Você pode tentar
$redact
com $setIntersection
para sua consulta. $setIntersection
para comparar o FirstArray
s Name
s com SecondArray
s Name
se retorna a matriz de documentos de nomes comuns seguidos por $size
e $redact
e compare o resultado com 0
para manter e remover o documento. db.collection.aggregate(
[{
$redact: {
$cond: {
if: {
$eq: [{
$size: {
$setIntersection: ["$FirstArray.Name", "$SecondArray.Name"]
}
}, 0]
},
then: "$$KEEP",
else: "$$PRUNE"
}
}
}, {
$project: {
_id: 1
}
}]
)