JackSurfer
@JackSurfer

Как посчитать сумму полей MongoDB?

Всем привет! Вопрос такой. Как посчитать сумму полей у каждого пользователя в MongoDB?

Не могу понять, как сформировать правильный запрос.

uid = ид пользователя, count - столбе поля, которые нужно посчитать у всех пользователей с определенным uid за определенный промежуток времени.

5d88fc28ea31d702532188.png

today = datetime.datetime.now()
            count_day = db.logs.find({'uid': a['uid']}, {'date': {"$gt": today - datetime.timedelta(1)}}).count()


вот так считаю кол-во записей, а нужно посчитать сумму count по тому же принципу
  • Вопрос задан
  • 1427 просмотров
Решения вопроса 1
hzzzzl
@hzzzzl
db.logs.aggregate([
  {
    $match: { uid: a['uid'] }
  },
  {
    $group: {
      _id: '$uid',
      sum: { $sum: '$count' }
    }
  }
])


попробовал у себя, работает, но с датой не заморачивался, по идее просто добавить условие в $match (возможно с оператором $and, но может и так сойдет)

$match: { uid: a['uid'], date: {"$gt": today - datetime.timedelta(1)} }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы