Database

[{brand:"brand1",size:"M",colour:"RED"},{brand:"brand1",size:"S",colour:"GREEN"},{brand:"brand2",size:"S",colour:"GREEN"}]

Query

db.collection.aggregate([{$set:{searchBrand:{$cond:[{$eq:["$brand","brand1"]},1,0]}}},{$facet:{brand:[{$group:{_id:"$brand",count:{$sum:"$searchBrand"}}},{$sort:{count:-1}}],size:[{$group:{_id:"$size",count:{$sum:"$searchBrand"}}},{$sort:{count:-1}}],colour:[{$group:{_id:"$colour",count:{$sum:"$searchBrand"}}},{$sort:{count:-1}}]}}])

Result