mongodb之lookup多条件查询

select * from MiscShipRecord m
left join BarcodeMaster b on m.ItemCode=b.ItemMasterCode and m.LotNo=d.LotNo
where m.id=new ObjectId("62eb55390a321100220a05c9")

转换成mongodb:

db.MiscShipRecord.aggregate([
    { $match : { _id : new ObjectId("62fb05d7e4ca8700257fad96") } }, // where MiscShipRecord._id=new ObjectId("62fb05d7e4ca8700257fad96")
    {
             $lookup:
                    {
                from: "BarcodeMaster", //从表
                let: {
                    "lotNo": "$LotNo",  //这里是将上一级的字段进行引入,注意变量必须小写
                    "itemCode": "$ItemCode"
                },
                "pipeline": [
                    { $match:
                            {
                                                                // $$lotNo是主表的字段
                                $expr: {$and: [ { $eq: ["$$lotNo","$LotNo" ] },{ $eq: ["$$itemCode","$ItemMasterCode" ] }]}
                            }
                    }
                ],
                as: "BarcodeMaster_details"           //为输出文档的新增值命名(值为关联的从表数据)
            }
    },
        {
             $unwind: "$BarcodeMaster_details"      
        }
])

 

posted @ 2024-05-11 13:35  江境纣州  阅读(5)  评论(0编辑  收藏  举报