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"}]},{"_id":{"$oid":"1388445c0000000000000012"},"name":"Store B"}],Product:[{"_id":{"$oid":"1388445c0000000000000021"},"name":"Product A"}]}

Query

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

Result