Диапазон цены в sample_airbnb
db.listingsAndReviews.find({
price: { $gte: 60, $lte: 90 }
})
Источник сравнивает выполнение такого запроса до и после индекса.
MongoDB Atlas — облачный сервис для размещения и управления MongoDB.
На занятии создаётся бесплатный Atlas account, проект и sample dataset.
Sample dataset нужен для экспериментов без ручного наполнения больших коллекций.
Индекс хранит часть данных в форме, удобной для быстрого поиска.
Без индекса MongoDB часто делает COLLSCAN, то есть просматривает коллекцию.
С индексом в плане появляется IXSCAN.
Для географического запроса по coordinates создаётся 2dsphere индекс.
Уникальный индекс по email защищает от дублей и даёт duplicate key error при повторе.
db.listingsAndReviews.find({
price: { $gte: 60, $lte: 90 }
})
Источник сравнивает выполнение такого запроса до и после индекса.
db.shipwrecks.createIndex({ coordinates: "2dsphere" })
После индекса explain должен показывать индексный путь для геозапроса.
db.shipwrecks.find({
coordinates: {
$geoWithin: {
$centerSphere: [[-96.48616143525156, 30.714748058919618], 0.07401030386454095]
}
}
})
Ищет кораблекрушения в круговой области.
db.shipwrecks.explain().find({
coordinates: {
$geoWithin: {
$centerSphere: [[-96.48616143525156, 30.714748058919618], 0.07401030386454095]
}
}
})
В winningPlan ищем IXSCAN, COLLSCAN, FETCH или SORT.
db.customers.createIndex({ email: 1 }, { unique: true })
Повтор email даст duplicate key error.