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

🔖 Справочник

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

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

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

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

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

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

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

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

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

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

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

createIndex()

Создаёт индекс по одному или нескольким полям.

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

2dsphere

Тип индекса для географических данных GeoJSON.

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

explain()

Показывает план выполнения запроса.

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

$geoWithin

Ищет документы, геометрия которых находится внутри заданной области.

{ coordinates: { $geoWithin: { $centerSphere: [[lng, lat], radius] } } }

unique: true

Запрещает повтор значения в индексируемом поле.

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

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

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