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

⚠️ Ошибки

📁 Блок: MongoDB / Atlas и наполнение коллекций ⏱️ Время изучения: ~90 мин 🎯 Сложность: Средняя

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

Вторая часть Atlas переносит акцент с индексов на наполнение коллекций и запись результата aggregation.

Коллекция students создаётся через insertMany из CSV-подобной таблицы.

Выпускников можно выбрать через $match по году обучения и записать в новую коллекцию через $out.

$out записывает результат pipeline в коллекцию, поэтому перед запуском нужно понимать, куда попадут данные.

Задание с airbnb_Istanbul и airbnb_manhattan100 тренирует геофильтр, сортировку и экспорт результата.

Для Manhattan используется Polygon в address.location и сортировка price: -1.

Для топ-100 нужна стадия $limit: 100 перед $out.

Топ-3 ошибки: забыть создать/проверить коллекцию назначения, поставить $out не последней стадией, скопировать типографские кавычки вместо обычных.

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

$out не последняя стадия

Симптом: Pipeline не выполняется как ожидается.

Исправление: $out ставить последним.

Типографские кавычки в имени коллекции

Симптом: mongosh выдаёт синтаксическую ошибку.

Исправление: Использовать обычные кавычки "airbnb_manhattan100".

Забыли $limit: 100

Симптом: Коллекция Manhattan содержит все найденные объекты, а не топ-100.

Исправление: После $sort добавить { $limit: 100 }.

Поле города не проверено

Симптом: airbnb_Istanbul пустая.

Исправление: Открыть документ в Compass и проверить путь поля.

Перезапись через $out

Симптом: Старая коллекция назначения заменена результатом pipeline.

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