Database
db={"collection1":[{"field1":"value1","field2":"value2","field3":"value3"}],"collection2":[{"field1":"value1","field2":"value2","field3":{"field31":"value3","field32":"value32"}}]}
Query
db.collection1.aggregate([{$lookup:{from:"collection2",let:{"c":"$field1","l":"$field2","t":"$field3"},pipeline:[{$match:{$expr:{$and:[{$eq:["$field1","$$c"]},{$eq:["$field2","$$l"]},{$eq:["$field3.field31","$$t"]}]}},},],as:"awesomejoin"}}])