Hi everyone!
I have a collection of message logs like (I’ve excluded _id from example, but it presents):
[
{
"message_id": 3,
"message_status": 2,
"created_at": "2023-02-06T22:15:08.696+00:00"
},
{
"message_id": 3,
"message_status": 1,
"created_at": "2023-02-05T22:28:08.696+00:00"
},
{
"message_id": 2,
"message_status": 1,
"created_at": "2023-02-06T22:15:08.696+00:00"
},
{
"message_id": 1,
"message_status": 2,
"created_at": "2023-02-06T22:15:08.696+00:00"
},
{
"message_id": 1,
"message_status": 1,
"created_at": "2023-02-05T22:28:08.696+00:00"
}
]
For this collection I wanted to get message count for each latest message_status (only with latest created_at)
F.e.:
[
{
"message_status": 1
"count" : 1 # message_id: 2 has lastest status 1
},
{
"message_status": 2
"count": 2 # message_id: 3 and 1 have lastest status 2
}
]
I tried to use $group by message_id to get latest status, how can I sum these statuses for all collection?
{ $group: { _id: "$message_id", latest_status: {$last: "$status_id"}}}
Thanks!