Eh bien, votre modification a essentiellement la réponse. Simplement $match
où le tableau est vide :
db.getCollection('collA').aggregate([
{ "$lookup": {
"from": "collB",
"localField": "_id",
"foreignField": "_id",
"as": "collB"
}},
{ "$match": { "collB.0": { "$exists": false } } }
])
Le $exists
test sur l'index du tableau de 0
est le moyen le plus efficace de demander dans une requête "est-ce un tableau contenant des éléments".