← К оглавлению занятия

⚠️ Ошибки

📁 Блок: MongoDB / CAP, ACID и практические задачи ⏱️ Время изучения: ~90 мин 🎯 Сложность: Продвинутая

⚡ Кратко: суть занятия

CAP-теорема описывает ограничения распределённых систем данных.

Consistency: все узлы видят одинаковые данные в одинаковый момент времени.

Availability: отказ узлов не мешает системе отвечать на запросы.

Partition Tolerance: система продолжает работать при разделении сети.

В распределённой системе можно гарантировать только два свойства из трёх.

ACID описывает надёжность транзакций: Atomicity, Consistency, Isolation, Durability.

Практика закрепляет aggregation на trips, companies, shipwrecks и restaurants.

Домашка 18: средняя цена на Гавайях и фильмы с imdb > 8 за 2015–2023 годы.

Типичные ошибки

Считать CAP выбором любых двух всегда без контекста

Симптом: Архитектурное решение получается слишком грубым.

Исправление: Учитывайте поведение именно при сетевом разделении.

Путать CAP Consistency и ACID Consistency

Симптом: Одинаковый термин воспринимается как одно и то же.

Исправление: В CAP это согласованность между узлами; в ACID — корректность состояния транзакции.

GeoJSON координаты в обратном порядке

Симптом: Геофильтр возвращает пусто.

Исправление: Пишите longitude, latitude.

Не проверять тип founded_year

Симптом: В сортировку попадают null или строки.

Исправление: Добавьте фильтр по числовому типу.

Считать цену без $group

Симптом: Получается список документов, а не средняя цена.

Исправление: Используйте $group с $avg.

Искать лучший рейтинг до фильтра отзывов

Симптом: Побеждает объект с малым числом отзывов.

Исправление: Сначала number_of_reviews >= 50, затем сортировка по рейтингу.