Database

db={"process":[{"_id":ObjectId("5f44e89aa1f4c77447629a29"),"name":"test process","description":"A test configuration for a process","milestones":[{"$ref":"milestone","$id":ObjectId("5f5753636b75033a49b7cc7b")},{"$ref":"milestone","$id":ObjectId("5f5753636b75033a49b7cc82")}]}],"milestone":[{"_id":ObjectId("5f5753636b75033a49b7cc7b"),"name":"S1","order":0,"results":[{"$ref":"resultDefinition","$id":ObjectId("5f5753636b75033a49b7cc79")},{"$ref":"resultDefinition","$id":ObjectId("5f5753636b75033a49b7cc7a")}]},{"_id":ObjectId("5f5753636b75033a49b7cc82"),"name":"S2","order":1,"results":[{"$ref":"resultDefinition","$id":ObjectId("5f5753636b75033a49b7cc7d")},{"$ref":"resultDefinition","$id":ObjectId("5f5753636b75033a49b7cc7e")},{"$ref":"resultDefinition","$id":ObjectId("5f5753636b75033a49b7cc7f")},{"$ref":"resultDefinition","$id":ObjectId("5f5753636b75033a49b7cc80")},{"$ref":"resultDefinition","$id":ObjectId("5f5753636b75033a49b7cc81")}]}],"Phases":[{"_id":ObjectId("5f5753636b75033a49b7cc7c"),"name":"P1","activityStream":{"$ref":"activityStream","$id":ObjectId("5f5755076b75033a49b7cc83")}}],"resultDefinition":[{"_id":ObjectId("5f5753636b75033a49b7cc79"),"name":"userresult","resultType":"User"},{"_id":ObjectId("5f5753636b75033a49b7cc7a"),"name":"planDateResult","resultType":"PlanDate"},{"_id":ObjectId("5f5753636b75033a49b7cc7d"),"name":"fileResult","resultType":"File"},{"_id":ObjectId("5f5753636b75033a49b7cc7e"),"name":"dateResult","resultType":"Date"},{"_id":ObjectId("5f5753636b75033a49b7cc7f"),"name":"textresult","resultType":"Text"},{"_id":ObjectId("5f5753636b75033a49b7cc80"),"name":"booleanResult","resultType":"Boolean"},{"_id":ObjectId("5f5753636b75033a49b7cc81"),"name":"numberResult","resultType":"Number"}]}

Query

db.process.aggregate([{$unwind:"$milestones"},{$lookup:{from:"milestone",let:{id:"$milestones.$id"},pipeline:[{$match:{$expr:{$eq:["$$id","$_id"]}}},{$unwind:"$results"},{$lookup:{from:"resultDefinition",localField:"results.$id",foreignField:"_id",as:"results"}},{$unwind:"$results"},{$group:{_id:"$_id",name:{$first:"$name"},order:{$first:"$order"},results:{$push:"$results"}}}],as:"milestones"}},{$unwind:"$milestones"},{$group:{_id:"$_id",name:{$first:"$name"},description:{$first:"$description"},milestones:{$push:"$milestones"}}}])

Result