Database
[{eventType:"A",browsers:[{name:"Chrome",count:10}],os:[{name:"Apple",count:10}]},{eventType:"B",browsers:[{name:"Chrome",count:2}]},{eventType:"A",browsers:[{name:"Chrome",count:5},{name:"Safari",count:8}]}]
Query
db.collection.aggregate([{"$project":{"eventType":1,"categories":{"$objectToArray":{"$mergeObjects":[{"browsers":"$browsers"},{"os":"$os"}]}}}},{"$unwind":"$categories"},{"$unwind":"$categories.v"},{"$group":{"_id":{"eventType":"$eventType","categoryType":"$categories.k","name":"$categories.v.name"},"count":{"$sum":"$categories.v.count"}}},{"$group":{"_id":{"eventType":"$_id.eventType","categoryType":"$_id.categoryType"},"category":{"$push":{"name":"$_id.name","count":"$count"}}}},{"$group":{"_id":"$_id.eventType","categories":{"$mergeObjects":{"$arrayToObject":[[["$_id.categoryType","$category"]]]}}}},{"$set":{"eventType":"$_id"}},{"$project":{"_id":0}},{"$replaceRoot":{"newRoot":{"$mergeObjects":["$categories","$$ROOT"]}}},{"$project":{"categories":0}},{"$out":"collection"}])