Cambia la pipeline qroup proprio come
Devi raggruppare per mittente non per _id univoco
{
$group: {
_id: "$sender",
sender: {
$first: "$sender"
},
messageId: {
$first: "$_id"
},
text: {
$first: "$text"
},
date: {
$first: "$date"
},
unread: {
$first: "$unread"
}
}
}
E cambia in $progetto
$project: {
sender: 1,
_id: "$messageId",
text: 1,
date: 1,
unread: 1
}