Database

[{userId:1,action:{type:"predefined value",key1:"key1Value",key2:"key2Value",key3:"key3Value"}},{userId:1,action:{type:"predefined value",key1:"key1aValue"}},{userId:1,action:{type:"predefined value",key3:"key3Value",key4:"key4Value"}}]

Query

db.collection.aggregate([{$match:{userId:1}},{$project:{actionsArr:{$filter:{input:{"$objectToArray":"$action"},cond:{$ne:["$$this.k","type"]}}}}},{$unwind:"$actionsArr"},{$group:{_id:{key:"$actionsArr.k",value:"$actionsArr.v"},sum:{$sum:1}}},{$group:{_id:"$_id.key",values:{$push:{_id:"$_id.value",count:"$sum"}}}},{$replaceRoot:{newRoot:{$arrayToObject:[[{k:"$_id",v:"$values"}]]}}}])

Result