Database
[{"role":"user","isActive":false},{"role":"vendor","isActive":true},{"role":"user","isActive":true},{"role":"user","isActive":true},{"role":"vendor","isActive":false},{"role":"admin","isActive":true}]
Query
db.collection.aggregate([{$project:{isActive:1,role:1}},{$group:{_id:"$role",all:{$sum:1},active:{$sum:{$cond:["$isActive",1,0]}}}},{$group:{_id:null,role:{$push:"$$ROOT"}}},{$set:{role:{$map:{input:"$role",in:{k:"$$this._id",v:{all:"$$this.all",active:"$$this.active"}}}}}},{$set:{role:{$arrayToObject:"$role"}}},{$replaceWith:{role:"$role"}}])