Я только начал использовать Mongodb. Застрял.автоматическое удаление документов в mongodb
Так у меня есть коллекция с полями:
_id
STARTDATE (длинный)
ENDDATE (длинный)
имя
Теперь я хочу, чтобы автоматически удалять документы, которые старше определенной даты.
Я создал индекс TTL для поля startDate
, установить время истечения через 2 минуты и проверить, истекает ли оно. При вставке документа с startDate
в качестве isoDate
он работал и истек.
..insert({startDate:newDate()})--> Got deleted after 2 secs.
Мой вопрос заключается в том, какие данные ранее были установлены, имеют начальную дату как длинное значение. Так как это будет работать?
Спасибо, Пол! Похоже, что мне нужно удалить документы на основе их создания Date, а не значения startDate. У меня также нет createDate как отдельного поля. Я понимаю, что могу получить Timestamp объекта ObjectId, если хочу получить дату создания документа. Но в документации упоминается, что мы не можем создавать индексы TTL на _id. Я прав? Любое предложение? – Rthp
Если у вас нет такого поля, добавьте его! Обновите свои документы, чтобы добавить поле create_date с помощью метки времени из ObjectId (я никогда не использовал эту функцию, но это имеет смысл), а затем TTL-индекс в create_date. – PaulMcG