ms-dred
@ms-dred
Вечно что то не то и что то не так...

Как обнулять счетчик каждые сутки?

Требуется обнулять каждые новые сутки счетчик и не пойму куда копать и как реализовать эту затею, мыли есть, но думаю может есть более интересный способ.

{
    _id: $id,
    count: 100
}


Нужно каждые сутки поле count выставлять на 0.

В голову приходит только по crontab, раз в сутки у всех записей жахать счетчик.
Интересно, а есть ли какие то более изящные вариант, к примеру встроенные в самой монге? Например если завести дополнительное поле с временем последнего обнуления поля count и при обновлении, изменении документа проверять поле и обнулять его? Может есть какие то встроенные штуки с интервалом обновления полей, о которых я не знаю?

Или все же только по хардкору crontab? =)
  • Вопрос задан
  • 333 просмотра
Решения вопроса 1
Wolfnsex
@Wolfnsex
Если не хочешь быть первым - не вставай в очередь!
Или все же только по хардкору crontab? =)
Это не хардкор, а одна из практик (один из подходов).

Например если завести дополнительное поле с временем последнего обнуления поля count и при обновлении, изменении документа проверять поле и обнулять его?
Можете завести дополнительное поле с датой, и если счётчик != 0 и дата == сегодня, и время обновления >= "уже пора", сбрасываете счётчик на 0 и увеличиваете дату на 1 день. Но по моему, каждый раз дёргать документ, что бы проверить дату и вообще так извращаться, как-то не серьёзно, особенно если таких проверок в день у вас будет не 10 и не 20... (если мало, то особо не принципиально)

P.S. В MySQL есть планироващик свой, на уровне БД. В Монге я такого не припоминаю...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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