Что такое Capped Collections
Capped collections — это коллекции фиксированного размера в MongoDB, которые автоматически перезаписывают самые старые документы когда достигается установленный лимит размера. Они сохраняют порядок вставки, что означает, что документы хранятся и извлекаются в том порядке, в котором они были добавлены.
Ключевые характеристики
- Фиксированный размер: ты определяешь максимальный размер в байтах при создании
- Автоматическое вытеснение: самые старые документы перезаписываются когда достигается лимит — ручное удаление не требуется
- Гарантированный порядок вставки: документы всегда возвращаются в том порядке, в котором они были вставлены
- Опциональный лимит количества документов: ты также можешь ограничить количество документов с помощью параметра
max
Как создать capped collection
db.createCollection("logs", { capped: true, size: 100000 })
Чтобы также ограничить количество документов:
db.createCollection("logs", { capped: true, size: 100000, max: 500 })
Типичные варианты использования
- Логирование приложений — хранить свежие записи логов без беспокойства о росте хранилища
- Кэширование — автоматически сохранять только самые последние данные
- Ленты активности — хранить скользящее окно недавних событий или действий пользователей
- Метрики и мониторинг — хранить чувствительные ко времени данные, где имеют значение только недавние записи
Важные ограничения
- Документы не могут быть удалены отдельно из capped collection
- Обновления, которые увеличивают размер документа, не допускаются
- Capped collections лучше всего подходят для append-only, time-series нагрузок