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

Ottieni i dati dalla raccolta b non nella raccolta a in una query della shell MongoDB

In mongo 3.2 il codice seguente sembra funzionare

db.collectionb.aggregate([
    {
      $lookup:
        {
          from: "collectiona",
          localField: "collectionb_fk",
          foreignField: "collectiona_fk",
          as: "matched_docs"
        }
   },
   {
      $match: { "matched_docs": { $eq: [] } }
   }
]);

sulla base di questo https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/#use-lookup-with-an-array esempio