Database

db={Company:[{"_id":{"$oid":"1388445c0000000000000001"},"name":"Company A","stores":[{"$oid":"1388445c0000000000000011"},{"$oid":"1388445c0000000000000012"}]}],Store:[{"_id":{"$oid":"1388445c0000000000000011"},"name":"Store A","products":[{"$oid":"1388445c0000000000000021"},{"$oid":"1388445c0000000000000022"},{"$oid":"1388445c0000000000000023"}]}],Product:[{"_id":{"$oid":"1388445c0000000000000021"},"name":"Product A"}]}

Query

db.Company.aggregate([{"$lookup":{"from":"Store","let":{stores:"$stores"},"pipeline":[{$match:{$expr:{$in:["$_id","$$stores"]}}},{$lookup:{"from":"Product",let:{products:{$ifNull:["$products",[]]}},pipeline:[{$match:{$expr:{$in:["$_id","$$products",]}}}],as:"products"}}],"as":"stores"}}])

Result