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" } ])