Database

db={"Study":[{name:"a",studyTime:1,learnedWords:["a"],notLearnedWords:["w"],learnedWordSet:"61cc3663970d00f9129d0456",user:"61cc3663970d00f9129d0455"}],"WordSet":[{_id:"61cc3663970d00f9129d0456",name:"d",category:["61cc3663970d00f9129d0454"]}],"Category":[{_id:"61cc3663970d00f9129d0454",name:"h"}],"User":[{_id:"61cc3663970d00f9129d0455",name:"user 1"}]}

Query

db.Study.aggregate([{$match:{user:"61cc3663970d00f9129d0455"}},{$lookup:{from:"User",localField:"user",foreignField:"_id",as:"currentUser"}},{$lookup:{from:"WordSet",let:{wordSetId:"$learnedWordSet"},pipeline:[{$match:{$expr:{$eq:["$_id","$$wordSetId"]}}},{$project:{_id:0,category:1}},{$unwind:"$category"},{$group:{_id:"$category",count:{$sum:1}}},{$sort:{count:-1}},{$limit:1},{$lookup:{from:"Category",localField:"_id",foreignField:"_id",as:"category"}},{$project:{_id:0,category:{$arrayElemAt:["$category.name",0]}}}],as:"wordSet"}},{$group:{_id:null,numberOfStudies:{$sum:1},averageStudyTime:{$avg:"$studyTime"},allStudyTime:{$sum:"$studyTime"},longestStudy:{$max:"$studyTime"},allLearnedWords:{$sum:{$size:"$learnedWords"}},hardestCategory:{$first:{$first:"$wordSet.category"}}}}])

Result