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

🔖 Справочник

📁 Блок: 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 не последней стадией, скопировать типографские кавычки вместо обычных.

Команды и операторы занятия

insertMany()

Создаёт students из строк таблицы.

db.students.insertMany([{ sID: 22001, name: "Alex", year: 1, score: 4.0 }])

$match

Оставляет только подходящие документы pipeline.

{ $match: { year: { $gte: 5 } } }

$out

Записывает результат pipeline в коллекцию.

{ $out: "graduated_students" }

$geoWithin + $geometry

Фильтр по географической области Polygon.

{ $match: { "address.location": { $geoWithin: { $geometry: { type: "Polygon", coordinates: [[[...]]] } } } } }

$sort

Сортирует объекты по цене.

{ $sort: { price: -1 } }

$limit

Оставляет первые 100 документов.

{ $limit: 100 }

Справочники курса

Локальный каталог MongoDB: справочник MongoDB. SQL-операторы предыдущих блоков: справочник SQL.