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":{_id:"$_id",avg:"$supply.avgSkillRating"},"count":{"$sum":1},"skill":{"$first":"$skill"}}},{"$group":{"_id":"$_id._id","skill":{"$first":"$skill"},"data":{$push:{k:{$concat:["avgSkillRating",{$toString:"$_id.avg"}]},v:"$count"}}}},{"$addFields":{"data":{"$arrayToObject":"$data"}}},{"$replaceRoot":{"newRoot":{"$mergeObjects":["$$ROOT","$data"]}}},{"$project":{data:0}}])

Result