Database

[{"_id":ObjectId("62406bfaa1d66f8d99c6e97d"),"skill":"Programming Language","supply":[{"employeeName":"A1","avgSkillRating":3},{"employeeName":"A2","avgSkillRating":4},{"employeeName":"A3","avgSkillRating":4},{"employeeName":"A4","avgSkillRating":4},{"employeeName":"A5","avgSkillRating":3},{"employeeName":"A6","avgSkillRating":4},{"employeeName":"A7","avgSkillRating":2},{"employeeName":"A8","avgSkillRating":2},{"employeeName":"A9","avgSkillRating":4},{"employeeName":"A10","avgSkillRating":3},{"employeeName":"A11","avgSkillRating":3},{"employeeName":"A12","avgSkillRating":3},{"employeeName":"A13","avgSkillRating":2},{"employeeName":"A14","avgSkillRating":4},{"employeeName":"A15","avgSkillRating":4}]}]

Query

db.collection.aggregate([{$unwind:"$supply"},{$group:{_id:"$supply.avgSkillRating",cnt:{$push:"$supply.avgSkillRating"},skill:{$first:"$skill"}}},{$project:{z:[{"k":{"$concat":["avgSkillRating",{$toString:"$_id"}]},"v":{$size:"$cnt"}}],skill:1}},{$replaceRoot:{newRoot:{"$mergeObjects":[{"$arrayToObject":"$z"},{skillName:"$skill"}]}}},{$group:{_id:"$skillName",x:{$push:"$$ROOT"}}},{"$replaceRoot":{"newRoot":{"$mergeObjects":"$x"}}}])

Result