Database

db={"person":[{"id":1,"name":"john","other_details":1023},{"id":2,"name":"mark","other_details":99}],"other_details":[{"id":1023,"married":false,"occupation_details":144,"bank_details":10},{"id":99,"married":true,"occupation_details":45,"bank_details":11}],occupation_details:[{"id":144,"comp_name":"oscorp inc."},{"id":45,"comp_name":"tesla inc."}],bank_details:[{"id":10,"bank":"Bank of canada"},{"id":11,"bank":"Peoples bank of canada"}]}

Query

db.person.aggregate([{"$match":{"id":1}},{"$lookup":{"from":"other_details","let":{"other_details":"$other_details"},"pipeline":[{"$match":{"$expr":{"$eq":["$id","$$other_details"]}}},{"$lookup":{"from":"occupation_details","localField":"occupation_details","foreignField":"id","as":"occupation_details"}},{"$unwind":"$occupation_details"},{"$lookup":{"from":"bank_details","localField":"bank_details","foreignField":"id","as":"custom_bank_details"}},{"$unwind":"$custom_bank_details"}],"as":"other_details"}},{"$unwind":"$other_details"}])

Result