MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoDB - Equivalente di LEFT JOIN in cui una raccolta non esiste

Bene, la tua modifica ha sostanzialmente la risposta. Semplicemente $match dove l'array è vuoto:

db.getCollection('collA').aggregate([
    { "$lookup": {
      "from": "collB",
      "localField": "_id",
      "foreignField": "_id",
      "as": "collB"
    }},
   { "$match": { "collB.0": { "$exists": false } } }
])

Il $exists test sull'indice dell'array di 0 è il modo più efficiente per chiedere in una query "è un array con elementi al suo interno".