小编Kri*_*hna的帖子

如何使用 $lookup MongoDB 进行左连接

我创建了下面的视图。我想让所有客户都在 orderheader 上使用地址类型计费,如果不是,我仍然想要 orderheader 文档。我认为匹配阶段正在消除一些文档,因为少数文档没有地址类型计费。

我的意思是它的行为就像 INNER JOIN,而不是我想要 LEFT JOIN。努力尝试,但我得到的只是 INNER JOIN。

    db.createView(
       "VWOrderHeader",
       "OrderHeader",
       [
        { 
          $lookup:{  
             from:"AddressDoc",
             as: "Address",
             localField: "CustomerNo",
             foreignField: "CustomerNo"
          }
        },
        {
            $match:{ "Address.AddressType":/Billing/i }
        },
        {
            $project:{
                _id:0,
                CustomerNo :"$CustomerNo",
                ContactName:{ $ifNull:[{$arrayElemAt: [ "$Address.ContactName",0 ]},""]}
            }
        }
       ]
)}
Run Code Online (Sandbox Code Playgroud)

sql mongodb

5
推荐指数
1
解决办法
3409
查看次数

标签 统计

mongodb ×1

sql ×1