Mongodb запрос для одного пользователя для каждого отдельного чата
в моей базе данных MongoDB у меня есть коллекция с такими сообщениями, как:
{
"_id" : ObjectId("5f315c1d80d6ce3f7bb597ba"),
"client" : ObjectId("5f2071c14bdf84841fb1b6a0"),
"read" : false,
"ticket" : ObjectId("5f315bec80d6ce3f7bb597b9"),
"message" : "test1 test3",
"createdAt" : ISODate("2020-08-10T14:39:25.893Z"),
"__v" : 0
}
{
"_id" : ObjectId("5f315c1e80d6ce3f7bb597bb"),
"client" : ObjectId("5f2071c14bdf84841fb1b6a0"),
"read" : false,
"ticket" : ObjectId("5f315bec80d6ce3f7bb597b9"),
"message" : "test1 test2",
"createdAt" : ISODate("2020-08-10T14:39:26.611Z"),
"__v" : 0
}
{
"_id" : ObjectId("5f315c6880d6ce3f7bb597bd"),
"client" : ObjectId("5f2071c14bdf84841fb1b693"),
"read" : false,
"ticket" : ObjectId("5f30e018b855b5321cc34fb9"),
"message" : "test1 test",
"createdAt" : ISODate("2020-08-10T14:40:40.310Z"),
"__v" : 0
}
Запрос подсчитывает количество новых сообщения по каждому чату для всех чатов от всех пользователей я использовал запрос который ниже:
db.chat.aggregate([
{$match: {read: false, client: {$ne: auth.admin._id}}}, {
$group: {
_id: '$ticket',
count: {$sum: 1}
}
}])
Нужно подсчитать все новые сообщения для одного пользователя для каждого его отдельного чата.