Database

db={"categories":[{_id:3276438964823,name:"Category 1",companyId:12345}],"exams":[{_id:482348327,categoryId:3276438964823,name:"Computer",companyId:12345},{_id:482343338327,categoryId:3276438964823,name:"Computer",companyId:12345}],"results":[{_id:3233980,exam_id:482348327,user_id:22222222}]}

Query

db.categories.aggregate([{$lookup:{from:"exams",localField:"_id",foreignField:"categoryId",as:"examsCount"}},{$lookup:{from:"results",let:{examId:"$examsCount._id"},pipeline:[{$match:{$expr:{$and:[{$in:["$exam_id","$$examId"]}]},user_id:22222222}},{$count:"count"}],as:"doneExams"}},{$addFields:{examsCount:{$size:"$examsCount"},doneExams:{$first:"$doneExams.count"}}}])

Result