Mongodb如何获取其他集合中不存在的数据

时间:2020-07-03 09:29:58

标签: mongodb mongoose mongodb-query nosql

我有两个集合usertransaction。我想获取集合userexists而非transaction的记录。然后我这样做


[
    {
       "$lookup" : {
            "from" : "transaction",
            "localField":"_id",
            "foreignField":"user",
            "as" : "trans"
       }
   },
   {
       "$match": { "transaction.user": { "$exists": false } }
   },
   {"$limit":20}
]

但是我没有记录我想要的东西。

1 个答案:

答案 0 :(得分:0)

usertransaction集合进行汇总。正如@ thammada.ts所述,您应该像这样在trans中使用$match

db.user.aggregate([
  {
    "$lookup": {
      "from": "transaction",
      "localField": "_id",
      "foreignField": "user",
      "as": "trans"
    }
  },
  {
    "$match": {
      "trans.user": {
        "$exists": false
      }
    }
  }
])

Mongo playground

还要验证_id集合和user中两个字段user的类型 在transaction集合中。