Database
[{"cat_id":1,"categoryCode":"categoryCode1","categoryName":"categoryName1","cat":[{"type":"A"}]},{"cat_id":2,"categoryCode":"categoryCode1","categoryName":"categoryName1","cat":[{"type":"A"}]},{"cat_id":3,"categoryCode":"categoryCode2","categoryName":"categoryName2","cat":[{"type":"C"}]},{"cat_id":4,"categoryCode":"categoryCode3","categoryName":"categoryName3","cat":[{"type":"A"}]}]
Query
db.collection.aggregate([{"$group":{"_id":{"categoryCode":"$categoryCode","categoryName":"$categoryName"},"catCount":{"$sum":{"$reduce":{"input":"$cat","initialValue":0,"in":{"$cond":{"if":{$eq:["$$this.type","A"]},"then":{$add:["$$value",1]},"else":"$$value"}}}}}}},{"$project":{"categoryCode":"$_id.categoryCode","categoryName":"$_id.categoryName","catCount":1,"_id":0}}])