Database

[{targets:["group1","group2"],userReads:[{userId:1,readAt:"date1"},{userId:2,readAt:"date2"},{userId:3,readAt:"date3"},]},{targets:["group1"],userReads:[{userId:1,readAt:"date4"}]}]

Query

db.collection.aggregate([{"$facet":{"groupsNotificationsCount":[{"$unwind":"$targets"},{$group:{_id:"$targets",count:{$sum:1}}}],"usersNotificationsCount":[{"$unwind":"$userReads"},{$group:{_id:"$userReads.userId",count:{$sum:1}}}]}},{"$project":{groupsNotificationsCount:{"$arrayToObject":{"$map":{"input":"$groupsNotificationsCount","as":"g","in":{k:"$$g._id",v:"$$g.count"}}}},usersNotificationsCount:{"$arrayToObject":{"$map":{"input":"$usersNotificationsCount","as":"u","in":{k:{$toString:"$$u._id"},v:"$$u.count"}}}}}}])

Result