Search code examples
mongodbmongooseaggregation

Mongodb Aggregation Not In Select


I have a problem with mongodb aggregation not in.

I have a collection "user" with data:

{
    "_id": "1234",
    "name": "Antony"
},
{
    "_id": "1235",
    "name": "Michael"
}

and collection "verify" which is related with "user" collection:

{
    "_id": "111",
    "user": "1234",
    "status": "true"
},

I want to select user who is user_id not in verify collection. And return data its should be:

{
    "_id": "1235",
    "name": "Michael"
}

Because Michael is not verified user.

How can i do that query with mongodb aggregation not in? Thanks before.


Solution

  • You could do that using $lookup then $match

    [
      {
        $lookup:{
         from: "verify", 
         localField: "_id", 
         foreignField: "user", 
         as: "res" 
        } 
      }, 
      { $match : { res: [] }} 
    ]