Database

db={user:[{"id":1}],group:[{"gid":13,"name":"group1"}],subgroup:[{"sgid":22,"gid":13,"name":"sgroup1"}],maps:[{"userId":1,"id":10,"mapId":13}],data:[{"sgid":22,"somedata":"somedata"}],}

Query

db.user.aggregate([{"$lookup":{"from":"maps","localField":"id","foreignField":"userId","as":"map"}},{"$unwind":"$map"},{"$lookup":{"from":"subgroup","localField":"map.mapId","foreignField":"gid","as":"subgroup"}},{"$unwind":"$subgroup"},{"$lookup":{"from":"data","localField":"subgroup.sgid","foreignField":"sgid","as":"data"}},{"$unwind":"$data"},{"$lookup":{"from":"group","localField":"subgroup.gid","foreignField":"gid","as":"group"}},{"$unwind":"$group"},{"$project":{"data":"$data.somedata","groupname":"$group.name","subgroupname":"$subgroup.name"}}])

Result