Database

[{"_id":{"$oid":"6326ea6f53636247f2daeb19"},"customerId":267,"customerName":"customer name","deviceId":7605,"deviceModel":"xxx","gpsDateTime":{"$date":{"$numberLong":"1663494743000"}},"heading":189,"iMEI":"461990","lat":33.0997333334,"lng":-117.2096316667,"msgDateTime":{"$date":{"$numberLong":"1663494767156"}},"speedKPH":0,"statusCode":"REPORT","tripStartDateTime":{"$date":{"$numberLong":"1663384611590"}},"vehicleGroupId":564,"vehicleGroupname":"vehicle group name","vehicleId":7474,"vehicleName":"vehicle name"},{"_id":{"$oid":"6326ea6f53636247f2daeb18"},"customerId":267,"customerName":"customer name","deviceId":7605,"deviceModel":"xxx","gpsDateTime":{"$date":{"$numberLong":"1663494743000"}},"heading":189,"iMEI":"461990","lat":33.0997333334,"lng":-117.2096316667,"msgDateTime":{"$date":{"$numberLong":"1663494767156"}},"speedKPH":0,"statusCode":"REPORT","tripStartDateTime":{"$date":{"$numberLong":"1663384611590"}},"vehicleGroupId":564,"vehicleGroupname":"vehicle group name","vehicleId":7474,"vehicleName":"vehicle name"},{"_id":{"$oid":"6326ea6f53636247f2daeb17"},"customerId":267,"customerName":"customer name","deviceId":7605,"deviceModel":"xxx","gpsDateTime":{"$date":{"$numberLong":"1663494743000"}},"heading":189,"iMEI":"461990","lat":33.0997333334,"lng":-117.2096316667,"msgDateTime":{"$date":{"$numberLong":"1663494767156"}},"speedKPH":0,"statusCode":"LOW_BATT","tripStartDateTime":{"$date":{"$numberLong":"1663384611590"}},"vehicleGroupId":564,"vehicleGroupname":"vehicle group name","vehicleId":7474,"vehicleName":"vehicle name"}]

Query

db.collection.aggregate([{$group:{_id:{deviceId:"$deviceId",year:{$year:"$msgDateTime"},month:{$month:"$msgDateTime"},status:"$statusCode"},customerId:{$last:"$customerId"},customerName:{$last:"$customerName"},deviceId:{$last:"$deviceId"},deviceModel:{$last:"$deviceModel"},iMEI:{$last:"$iMEI"},vehicleId:{$last:"$vehicleId"},vehicleName:{$last:"$vehicleName"},vehicleGroupId:{$last:"$vehicleGroupId"},vehicleGroupName:{$last:"$vehicleGroupname"},firstMsgDate:{$min:"$msgDateTime"},lastMsgDate:{$max:"$msgDateTime"},totalMessages:{$sum:1}}},{$set:{status:[{k:"$_id.status",v:"$totalMessages"}],year:"$_id.year",month:"$_id.month",}},{$set:{status:{"$arrayToObject":"$status"}}},{$group:{_id:{"deviceId":"$_id.deviceId","month":"$_id.month","year":"$_id.year"},totalMessages:{$sum:"$totalMessages"},totalStatus:{$push:"$status"},data:{$first:"$$ROOT"}}},{$set:{"data._id.status":"$$REMOVE","data.status":"$$REMOVE","data.totalStatus":"$totalStatus","data.totalMessages":"$totalMessages"}},{$replaceRoot:{newRoot:"$data"}}])

Result