Database

db={"school":[{"_id":ObjectId("5f9934b952255731e8dbfa17"),class:[]}],"class":[{"_id":ObjectId("5f9a4398e146b6327457967b"),"school_id":ObjectId("5f9934b952255731e8dbfa17"),"name":"","description":"",students:[]},{"_id":ObjectId("5f9a4398e146b6327457967c"),"school_id":ObjectId("5f9934b952255731e8dbfa17"),"name":"","description":"",students:[]}],"students":[{"_id":ObjectId("5f9a4398e146b6327457967c"),"class_id":ObjectId("5f9a4398e146b6327457967b"),"name":"","description":""},{"_id":ObjectId("5f9a4398e146b6327457967d"),"class_id":ObjectId("5f9a4398e146b6327457967c"),"name":"","description":""},{"_id":ObjectId("5f9a4398e146b6327457967e"),"class_id":ObjectId("5f9a4398e146b6327457967c"),"name":"","description":""}]}

Query

db.school.aggregate([{$lookup:{from:"class",localField:"_id",foreignField:"school_id",as:"class"}},{$lookup:{from:"students",localField:"class._id",foreignField:"class_id",as:"students"}},{$addFields:{class:{$map:{input:"$class",as:"c",in:{_id:"$$c._id",school_id:"$$c.school_id",name:"$$c.name",description:"$$c.description",students:{$filter:{input:"$students",cond:{$eq:["$$c._id","$$this.class_id"]}}}}}}}},{$project:{students:0}}])

Result