Что такое MongoDB Views
View в MongoDB — это доступный только для чтения объект, к которому можно обращаться запросами, содержимое которого определяется aggregation pipeline, применённым к существующей коллекции или другому view. Views не хранят данные сами по себе — они вычисляют результаты динамически при запросе.
Как работают Views
- Определяются с помощью aggregation pipeline на исходной коллекции
- Автоматически отражают изменения в базовой коллекции
- Их нельзя изменять — поддерживаются только операции чтения
- Создаются с помощью команды
createView или db.createCollection с опциями view
db.createView("viewName", "sourceCollection", [pipeline])
Основные случаи использования
- Форматирование данных — преобразование или изменение формы документов без модификации исходной коллекции
- Ограничение полей — предоставление доступа только к конкретным полям, скрытие чувствительных данных, таких как пароли или личная информация
- Заранее определённые агрегации — инкапсуляция сложной логики aggregation, чтобы приложения могли обращаться к views как к обычным коллекциям
- Контроль доступа — предоставление пользователям доступа к view вместо базовой коллекции для применения правил видимости данных
Основные ограничения
- Views доступны только для чтения — операции insert, update и delete не разрешены
- Они не поддерживают создание индексов напрямую; используются индексы базовой коллекции
- Производительность зависит от эффективности базового aggregation pipeline