Database

db={"orders":[{"_id":1,"shopId":"s1","consumerId":"c1","dispatches":[{"_id":"d1","status":"assigned","toBeSentOn":ISODate("2024-05-15T10:00:00Z")}]}],"amounts":[{"_id":"a1","shopId":"s1","orderId":1,"consumerId":"c1","dispatchId":"d1","amount":100}]}

Query

db.orders.aggregate([{$match:{shopId:"s1"}},{"$addFields":{arraysElemsForlookup:[{"consumerId":"c1","dispatchId":"d1","orderId":1},{"consumerId":"c5","dispatchId":"d6","orderId":5},{"consumerId":"c2","dispatchId":"d2","orderId":2}]}},{$lookup:{from:"amounts",let:{arraysElemsForlookup:"$arraysElemsForlookup"},pipeline:[{$match:{$expr:{$ne:[{$filter:{input:"$$arraysElemsForlookup",cond:{$and:[{$eq:["$orderId","$$this.orderId"]},{$eq:["$consumerId","$$this.consumerId"]},{$eq:["$dispatchId","$$this.dispatchId"]}]}}},[]]}}}],as:"lookupData"}}])

Result