Database

[{"name":"Alex","domains":{"domain_1":1,"domain_2":1,"domain_3":0}},{"name":"Arthur","domains":{"domain_1":1,"domain_2":0,"domain_3":3}},{"name":"Paul","domains":{"domain_1":0,"domain_2":2,"domain_3":3}}]

Query

db.collection.aggregate([{$project:{_id:0,data:{$objectToArray:"$domains"}}},{$unwind:"$data"},{$group:{_id:{domain:"$data.k",level:"$data.v"},count:{$sum:1}}},{$group:{_id:"$_id.domain",data:{$push:{k:{$concat:["level_",{$toString:"$_id.level"}]},v:"$count"}}}},{$project:{k:"$_id",v:{$mergeObjects:[{"level_0":0,"level_1":0,"level_2":0,"level_3":0},{"$arrayToObject":"$data"}]}}},{$group:{_id:0,data:{$push:{k:"$k",v:"$v"}}}},{$replaceRoot:{newRoot:{$arrayToObject:"$data"}}}])

Result