Что такое коллекция с ограничением размера (capped collection) в MongoDB и когда ее следует использовать?
Этот вопрос проверяет понимание концепции коллекций с ограничением размера в MongoDB и их применения для управления объемом данных.
Короткий ответ
Коллекция с ограничением размера в MongoDB — это коллекция с фиксированным размером. Когда размер коллекции достигает заданного лимита, она начинает перезаписывать старые документы новыми, как кольцевой буфер. Это подходит для ситуаций, где важны только последние данные, например, в логировании или кэшировании.
Длинный ответ
Что такое коллекция с ограничением размера (capped collection)? Коллекция с ограничением размера — это специальный тип коллекции, который автоматически управляет размером данных. После того как коллекция достигает установленного размера, она начинает перезаписывать старые данные новыми.
Основные характеристики:
- Фиксированный размер: Коллекция имеет ограничение по размеру, которое задается при создании. После достижения этого размера MongoDB начинает удалять старые записи.
- Автоматическая очистка: Старые документы автоматически удаляются, и место для новых данных освобождается.
- Поддержка только вставки: В коллекциях с ограничением размера нельзя выполнять обновления документов (только добавление новых записей).
Когда использовать?
- Логирование: Для хранения логов, где важны только последние записи, а старые логи теряют актуальность.
- Кэширование: Для простого кэширования, где старые данные заменяются новыми по мере их появления.
- Мониторинг в реальном времени: Для хранения данных о текущих событиях или метрик, где только последние данные важны для анализа.
Пример создания коллекции с ограничением размера:
db.createCollection("logs", { capped: true, size: 100000 })Этот запрос создаст коллекцию logs, ограниченную размером в 100,000 байт.
Коллекции с ограничением размера полезны в случаях, когда необходимо эффективно управлять объемом данных и поддерживать только последние данные, например, для логирования или кэширования.