无法使用mongoDB脚本执行左外连接

时间:2016-08-06 09:58:45

标签: mongodb left-join

如何在访问多个集合中的数据时执行左外连接? 即使DB_Market中没有匹配项,我也希望从集合中获取详细信息。目前,如果我使用条件进一步过滤,我可以实现内连接。但是除此之外我还需要左外。

示例代码

 db.new.aggregate([
 { 
    "$lookup": {
                "from": "DB_Market",
                "localField": "var1",
                "foreignField": "var1",
                "as": "collection2_doc"
           }
 },

 {"$unwind": "$collection2_doc" }])

1 个答案:

答案 0 :(得分:1)

我认为你可以执行左外连接。当您执行$unwind时,请确保 preserveNullAndEmptyArrays true

    db.new.aggregate([
     { 
        $lookup: {
                    "from": "DB_Market",
                    "localField": "var1",
                    "foreignField": "var1",
                    "as": "collection2_doc"
               }
     },

     {$unwind: { path: "$collection2_doc", preserveNullAndEmptyArrays: true }  }

     ])