Database

[{"account_id":52519,"date_posted":ISODate("2018-11-19T15:38:52.000Z"),"message_format":"t"},{"account_id":52519,"date_posted":ISODate("2018-11-19T15:43:01.000Z"),"message_format":"e"},{"account_id":52519,"date_posted":ISODate("2018-11-19T15:38:51.000Z"),"message_format":"e"},{"account_id":52519,"date_posted":ISODate("2018-11-19T15:56:22.000Z"),"message_format":"s"},{"account_id":52519,"date_posted":ISODate("2018-11-19T15:56:22.000Z"),"message_format":"p"},{"account_id":52520,"date_posted":ISODate("2018-11-19T15:56:22.000Z"),"message_format":"p"},{"account_id":52520,"date_posted":ISODate("2018-11-19T15:56:22.000Z")},{"account_id":52520,"date_posted":ISODate("2018-11-20T15:56:22.000Z"),"message_format":"e"}]

Query

db.collection.aggregate([{$group:{_id:{account_id:"$account_id",date_posted:{$dateToString:{format:"%Y-%m-%d",date:"$date_posted"}}},email_count:{$sum:{$cond:[{$eq:["$message_format","e"]},1,0]}},sms_count:{$sum:{$cond:[{$eq:["$message_format","t"]},1,0]}},push_count:{$sum:{$cond:[{$eq:["$message_format","p"]},1,0]}},slack_count:{$sum:{$cond:[{$eq:["$message_format","s"]},1,0]}}}},{$addFields:{account_id:"$_id.account_id",date_posted:"$_id.date_posted"}},{$project:{_id:0}},{$sort:{account_id:1}}])

Result