在 MongoDB 中如何使用 $lookup 仅获取不匹配的记录?

Sou*_*ani 5 database aggregate-functions mongodb

在Mongodb中,我想获取那些没有任何订单的产品的数据。

集合:master_product_details、master_order_details

我正在使用正常的 $lookup 查询,它提供所有与订单匹配或不匹配的记录。

db.master_product_details.aggregate([
        { 
        $match: { seller_user_id : 'seller_id' } 
        },
        {
        $lookup : {from: "master_order_details",localField: "seller_sku_id", foreignField: "sku_id", as : "Orders"} 
        },
        {$unwind : '$Orders'},
        {$project : { seller_sku_id : 1, product_title : 1, _id : 0}

            }
        ])
Run Code Online (Sandbox Code Playgroud)

任何其他方式来获得结果?

Ash*_*shh 7

$match在管道末端再使用一个条件

db.master_product_details.aggregate([
  { "$match": { "seller_user_id": "seller_id" }},
  { "$lookup": {
    "from": "master_order_details",
    "localField": "seller_sku_id",
    "foreignField": "sku_id",
    "as": "Orders"
  }},
  { "$match": { "Orders": [] }}
])
Run Code Online (Sandbox Code Playgroud)