MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB – Entspricht LEFT JOIN, wo eine Sammlung nicht vorhanden ist

Nun, Ihre Bearbeitung hat im Grunde die Antwort. Einfach $match wobei das Array leer ist:

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

Der $exists Test auf dem Array-Index von 0 ist die effizienteste Art, in einer Abfrage zu fragen:"Ist das ein Array mit Elementen darin?".