2013-10-01 3 views
-1

Интересно, хранят ли укомплектованные коллекции индексы для документов с истекшим сроком действия?Индексы для закрытых коллекций в mongoDB

Извлечение документов из обычной коллекции keeps indexes.

Обнаженные коллекции remove documents by timer и do not allow db.collection.remove() на всех.

Не удалось найти слово в docs, что происходит с индексами для закрытых коллекций и будет признателен за любую помощь от тех, кто знает.

ответ

3

TL; Единственный способ удалить документы из закрытой коллекции - это удалить всю коллекцию, которая также удалит сами индексы из коллекции.

Интересно, хранят ли укомплектованные коллекции индексы для документов с истекшим сроком действия?

Нет. Документы, которые больше не хранятся, никогда не остаются в индексе.

Извлечение документов из обычной коллекции хранит индексы.

Это немного вводит в заблуждение. Удаление всех документов из обычной коллекции с использованием db.collection.remove() удаляет оба документа из коллекции, а также удаляет эти документы из индекса. Однако он не удаляет индексы коллекции, т. Е. После добавления новых документов, которые они добавляются в соответствующие индексы, снова (то есть удаление самого индекса отличается от удаления документов из индекса).

Обнаженные коллекции удаляют документы по таймеру и не разрешают db.collection.remove() вообще.

ТТЛ-функцию вы связаны не имеет ничего общего с блокированными коллекциями, на самом деле, документация говорит:

Вы не можете создать индекс TTL на блокированное коллекции, потому что MongoDB не может удалить документы из закрытой коллекции.

Коллекция с индексом TTL позволяет db.collection.remove.

capped collection, с другой стороны, имеет фиксированный размер (с точки зрения объема данных), а также самые старые документы из коллекции автоматически перезаписываются, как только коллекция полна. Это не зависит от времени, а от размера коллекции. Обрезанные коллекции всегда хранятся в порядке размещения (естественный порядок).

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

+0

Большое спасибо за разъяснение различия между коллекциями с ограниченным доступом и TTL-ed. Итак, что происходит с индексами для документов, истекших TTL? –

+0

Индексы в коллекции остаются. Сборник - это самостоятельная организация, так сказать.Не имеет значения, пуст ли он сейчас или нет - функциональность TTL - это сам индекс. – mnemosyn

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