Как автоматически удалить все записи / строки старше недели в NodeJs? - PullRequest
1 голос
/ 17 февраля 2020

У меня есть требование, когда мне нужно хранить все данные не старше 7 дней. Все данные старше, которые должны быть автоматически удалены из базы данных. Я хочу сделать это на NodeJs на ExpressJs сервере.

Я прочитал, что могу использовать для этого функцию setInterval ().

function intervalFunc() {
    //send DELETE request to delete rows older than 7 days.
}
setInterval(intervalFunc,604800000); //interval of 7 days

Я хочу знать, как написать запрос на удаление, чтобы удалить только те записи, которые старше 7 дней. И, если есть лучший способ сделать это?

1 Ответ

0 голосов
/ 17 февраля 2020

Вы можете запланировать задание cron на уровне приложения для удаления старых записей. Но вы также можете использовать «Функция автоматического истечения срока действия документов с MongoDB» эта функция начиная с MongoDB версии 2.2. Для этого MongoDB использует коллекцию TTL. Коллекции TTL позволяют хранить данные в MongoDB, и MongoDB автоматически удаляет данные через указанное количество секунд или в указанное c время. Подробнее здесь:

https://docs.mongodb.com/manual/core/index-ttl/

http://hassansin.github.io/working-with-mongodb-ttl-index

Используя работу Cron, вы получите больший контроль через процесс, такой как отправка какого-либо уведомления или выполнение какого-либо действия после удаления данных с истекшим сроком действия.

...