COLLSCAN / IXSCAN
COLLSCAN = полный просмотр коллекции
IXSCAN = проход по индексу
FETCH = чтение документов
SORT = сортировка в памяти
Эти этапы перечислены в источнике как ключи к разбору explain-плана.
Summary session 17 повторяет Atlas, индексы, наполнение коллекций и Aggregation Pipeline.
Atlas — облачный сервис MongoDB для размещения, управления и масштабирования баз данных.
Индекс хранит часть данных коллекции в форме, удобной для поиска.
COLLSCAN означает просмотр коллекции без индекса, IXSCAN — использование индекса.
FETCH читает документы из коллекции, SORT показывает сортировку в памяти.
Geo-запросы требуют подходящего 2dsphere индекса, например по coordinates.
Практический блок создаёт students, выбирает выпускников и заполняет другую коллекцию.
Домашка разбирает theaters в Калифорнии, максимальные bedrooms и лучший рейтинг при минимум 50 отзывах.
COLLSCAN = полный просмотр коллекции
IXSCAN = проход по индексу
FETCH = чтение документов
SORT = сортировка в памяти
Эти этапы перечислены в источнике как ключи к разбору explain-плана.
db.shipwrecks.createIndex({ coordinates: '2dsphere' })
Индекс нужен до запуска геофильтра, иначе поиск координат будет дорогим.
db.students.aggregate([
{ $match: { year: { $gte: 5 } } },
{ $out: "graduated_students" }
])
Сначала выбираем выпускников, затем записываем результат в новую коллекцию.
db.theaters.countDocuments({ "location.address.state": "CA" })
Поле штата обычно лежит внутри адреса кинотеатра; если структура отличается, проверьте документ в Compass.
db.listingsAndReviews.find(
{},
{ name: 1, bedrooms: 1 }
).sort({ bedrooms: -1 }).limit(1)
Сортировка по bedrooms убыванию поднимает объект с максимальным значением.
db.listingsAndReviews.find(
{ number_of_reviews: { $gte: 50 } },
{ name: 1, "review_scores.review_scores_rating": 1 }
).sort({ "review_scores.review_scores_rating": -1 }).limit(1)
Фильтр по отзывам должен идти до сортировки по рейтингу.