Database
db={A:[{"_id":"asd123","loc":"blr","date":"2020-01-01","test":{"a":true,"b":true,"c":true}},{"_id":"asd143","loc":"blr","date":"2020-01-02","test":{"a":true,"b":true,"c":true}},{"_id":"asd153","loc":"kolkata","date":"2020-01-02","test":{"a":true,"b":true,"c":true}}],B:[{"_id":"asd999","loc":"blr","date":"2020-01-01","test":{"a":[1,3],"b":[2],"c":[]}},{"_id":"asd989","loc":"blr","date":"2020-01-02","test":{"a":[1,3],"b":[],"c":[]}}],C:[{"_id":1,"url":"https://stackoverflow.com/","name":"Rahul","age":24},{"_id":2,"url":"https://stackoverflow.com/","name":"sita","age":26},{"_id":3,"url":"https://stackoverflow.com/","name":"sita","age":26}]}
Query
db.A.aggregate([{$lookup:{from:"B",let:{loc:"$loc",date:"$date"},pipeline:[{$match:{$expr:{"$and":[{"$eq":["$loc","$$loc"]},{"$eq":["$date","$$date"]}]}}},{"$lookup":{"from":"C","localField":"test.a","foreignField":"_id","as":"test.a"}},{"$lookup":{"from":"C","localField":"test.b","foreignField":"_id","as":"test.b"}},{"$lookup":{"from":"C","localField":"test.c","foreignField":"_id","as":"test.c"}}],as:"testlinks"}}])