Database
[{"status":"SENT","country":"_bg","createdAt":"<dataTime>",},{"status":"CREATED","country":"_de","createdAt":"<dataTime>",},{"status":"SENT","country":"_de","createdAt":"<dataTime>",},{"status":"ERROR","country":"_de","createdAt":"<dataTime>",},{"status":"SENT","country":"_bg","createdAt":"<dataTime>",},]
Query
db.collection.aggregate([/*** {* $match: {* createdAt: {* $gt: new Date(from),* $lt: new Date(to),* }* },* },*/{$group:{_id:"$country",status:{$push:"$status"}}},{$group:{_id:null,data:{$push:"$$ROOT"}}},{$replaceRoot:{newRoot:{$arrayToObject:{$map:{input:"$data",as:"data",in:{k:"$$data._id",v:{$arrayToObject:{$map:{input:["SENT","ERROR","WAITING","CANCELED"],as:"status",in:{k:"$$status",v:{$size:{$filter:{input:"$$data.status",cond:{$eq:["$$this","$$status"]}}}}}}}}}}}}}}])