Database
[{"_id":"id-1","tests":[{"category":"cat1","status":"status1",},{"category":"cat1","status":"status2",},{"category":"cat2","status":"status2",},],},{"_id":"id-2","tests":[{"category":"cat2","status":"status1",},{"category":"cat1","status":"status1",},{"category":"cat1","status":"status2",},],}]
Query
db.collection.aggregate([{$project:{tests:{$map:{input:"$tests",in:{$objectToArray:"$$this"}}}}},{$unwind:"$tests"},{$unwind:"$tests"},{$group:{_id:{_id:"$_id",k:"$tests.k",v:"$tests.v"},count:{$sum:1}}},{$group:{_id:{_id:"$_id._id",k:"$_id.k"},items:{$push:{k:"$_id.v",v:"$count"}}}},{$group:{_id:"$_id._id",items:{$push:{k:"$_id.k",v:{$arrayToObject:"$items"}}}}},{$project:{items:{$arrayToObject:"$items"}}}])