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

✅ Решения

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

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

MongoDB Atlas — облачный сервис для размещения и управления MongoDB.

На занятии создаётся бесплатный Atlas account, проект и sample dataset.

Sample dataset нужен для экспериментов без ручного наполнения больших коллекций.

Индекс хранит часть данных в форме, удобной для быстрого поиска.

Без индекса MongoDB часто делает COLLSCAN, то есть просматривает коллекцию.

С индексом в плане появляется IXSCAN.

Для географического запроса по coordinates создаётся 2dsphere индекс.

Уникальный индекс по email защищает от дублей и даёт duplicate key error при повторе.

Решения с пояснениями

Проверка Atlas

Откройте Databases в Atlas, убедитесь, что кластер доступен, IP добавлен в Network Access, а sample dataset загрузился.

Это подготовка к заданиям следующей части.

Индекс координат

db.shipwrecks.createIndex({ coordinates: "2dsphere" })

Команда создаёт геоиндекс для поля coordinates.

Explain геозапроса

db.shipwrecks.explain().find({
  coordinates: {
    $geoWithin: {
      $centerSphere: [[-96.48616143525156, 30.714748058919618], 0.07401030386454095]
    }
  }
})

В winningPlan ищите IXSCAN после создания индекса.

Уникальный индекс

db.customers.createIndex({ email: 1 }, { unique: true })

После этого документ с уже существующим email не вставится.