Database

[{type:"agency",properties:4},{type:"host",properties:5},{type:"agency",properties:4},{type:"landlord",properties:5},{type:"agency",properties:8},{type:"tenant",properties:2},{type:"host",properties:1},{type:"host",properties:1},{type:"agency",properties:8},{type:"host",properties:9},{type:"host",properties:5},{type:"agency",properties:1},{type:"agency",properties:2},{type:"tenant",properties:2},{type:"agency",properties:1},{type:"tenant",properties:4},{type:"tenant",properties:7}]

Query

db.collection.aggregate([{$set:{"0 properties":{$cond:[{$eq:["$properties",0]},1,0]},"1 property":{$cond:[{$eq:["$properties",1]},1,0]},"2 properties":{$cond:[{$eq:["$properties",2]},1,0]},"3 or more properties":{$cond:[{$gte:["$properties",3]},1,0]}}},{$group:{_id:"$type",count:{$count:{}},"0 properties":{$sum:"$0 properties"},"1 property":{$sum:"$1 property"},"2 properties":{$sum:"$2 properties"},"3 or more properties":{$sum:"$3 or more properties"}}},{$set:{_id:"$$REMOVE",type:"$_id"}}])

Result