Я создаю приложение, используя JS/Node.JS/Express/MongoDB. Пользователи могут приобрести листинг. Список сохраняется как документ в базе данных MongoDB. Я хотел бы, чтобы срок действия списка истекал через определенное время (например, 30 дней). Я имею в виду просто логическое поле в документе под названием «истек срок действия», которое по умолчанию имеет значение false, но переключается на true по истечении времени. Есть ли способ использовать JavaScript для прикрепления таймера к каждому списку, а затем инициировать изменение в БД после истечения срока действия таймера?
Вам нужно создать индекс TTL для того же самого. Индекс TTL (время жизни) удаляет документ по истечении заданного времени.
Вы можете создать индекс TTL, как показано ниже:
product.createIndexes({ "lastModifiedDate": 1 }, { expireAfterSeconds: 3600 })
здесь продукт - это схема. Вы должны изменить lastModifiedDate на поле, в котором вы решаете удалить документ через определенное время.
Вы можете создать индекс либо с помощью драйвера в nodejs, либо в самой коллекции в оболочке mongo.
Спасибо! Я предполагаю, что мне нужно будет сохранить 2 отдельные схемы, если я хочу дать пользователю возможность восстановить просроченный документ?