Задать вопрос
@fostsinger

Mongodb агрегировать данные для одного пользователя?

нужно подсчитать все не прочитанные сообщения для одного пользователя для каждого чата отдельно
{
 "_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}
      }
    }])
  • Вопрос задан
  • 24 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы