Database
db={"collA":[{"_id":1,"field1":"A","field2":"","value":42},{"_id":2,"field1":"B","field2":"","value":99},{"_id":3,"field1":"C","field2":"","value":15},{"_id":4,"field1":"C","field2":"Z","value":15}],"collB":[{"_id":1,"field1":"A","field2":"","arrayField":[10,42,73]},{"_id":2,"field1":"B","field2":"","arrayField":null},{"_id":3,"field1":"C","field2":"","arrayField":null},{"_id":4,"field1":"C","field2":"Z","arrayField":[99,15]}]}
Query
db.collA.aggregate([{$lookup:{from:"collB",let:{v:"$value",f1:"$field1",f2:"$field2"},pipeline:[{$match:{$expr:{$and:[{$eq:["$field1","$$f1"]},{$eq:["$field2","$$f2"]},{"$cond":{"if":{$gt:[{"$size":{"$ifNull":["$arrayField",[]]}},0]},"then":{$in:["$$v","$arrayField"]},"else":true}}]}}}],as:"result"}}])