нужно подсчитать все не прочитанные сообщения для одного пользователя для каждого чата отдельно
{
"_id" : ObjectId("5f315c1d80d6ce3f7bb597ba"),
"client" : ObjectId("5f2071c14bdf84841fb1b6a0"),
"read" : false,
"ticket" : ObjectId("5f315bec80d6ce3f7bb597b9"),
"message" : "00000",
"createdAt" : ISODate("2020-08-10T14:39:25.893Z"),
"__v" : 0
},
{
"_id" : ObjectId("5f315c1d80d6ce3f7bb597ba"),
"client" : ObjectId("5f2071c14bdf84841fb1b6a0"),
"read" : false,
"ticket" : ObjectId("5f315bec80d6ce3f7bb597b9"),
"message" : "00000",
"createdAt" : ISODate("2020-08-10T14:39:25.893Z"),
"__v" : 0
}
запрос ниже выдает все тикеты всех пользователей и их подсчеты
db.chatContacts.aggregate([
{$match: {read: false, client: {$ne: auth.user._id}}}, {
$group: {
_id: '$ticket',
count: {$sum: 1}
}
}])