2013-12-03 2 views
0

Есть ли у нас некоторый способ отметить индекс с атрибутом expireAfterSeconds как бесконечный. Я хочу сделать это, чтобы не быть вынужденным отказаться от индекса позже, и просто измените TTL с помощью collMod. Или, может быть, у нас есть какое-то максимальное значение для свойства expireAfterSeconds? Как вы думаете?Бесконечный TTL для коллекции MongoDB

ответ

1

Нет, вы не можете. Но вы можете установить его на очень высокое значение, как 100 лет (около 3.000.000.000 секунд).

В качестве альтернативы вы можете отказаться от встроенного механизма TTL-индекса и реплицировать функциональные возможности на стороне клиента. MongoDBs TTL довольно примитивен. Все, что он делает, - это позвонить db.collection.remove({date:{$lt: new Date() - ttl }) через регулярные промежутки времени. Репликация этого на стороне приложения часто не очень много работает.

+0

Это максимальное значение? –

+0

@EddieJamsession Я думаю, что он принимает длинное целое число, поэтому максимум должен быть 9.223.372.036.854.775.807 – Philipp

Смежные вопросы