Mercury
db.planets_name.find({ name: "Mercury" })
Точное совпадение по строковому полю name.
Практикум 16 закрепляет создание коллекции и запросы MongoDB на небольшом наборе planets.
Коллекцию лучше назвать с личным суффиксом, чтобы не конфликтовать с работой других студентов.
Основные поля: name, orderFromSun, hasRings, surfaceTemperatureC.
Фильтры тренируют равенство, диапазоны $gte/$lte, булевы поля и комбинирование условий.
Сортировка по orderFromSun помогает быстро проверить порядок планет.
countDocuments() подходит для подсчёта документов по условию.
После базовых запросов документы дополняются mass10e24kg, а затем используются в сортировках и группировках.
Топ-3 ошибки: записать отрицательные температуры с посторонним символом, перепутать true/false со строками, забыть обновить все планеты перед агрегацией.
db.planets_name.find({ name: "Mercury" })
Точное совпадение по строковому полю name.
db.planets_name.find({ orderFromSun: { $gte: 1, $lte: 3 } })
Обе границы включены.
db.planets_name.find({ hasRings: true })
Кольца есть у Jupiter, Saturn, Uranus и Neptune.
db.planets_name.find({ surfaceTemperatureC: { $gt: 50 } })
Строго больше 50.
db.planets_name.find({ surfaceTemperatureC: { $gte: 50, $lte: 100 } })
В исходных данных подходит Mercury.
db.planets_name.find({
hasRings: false,
surfaceTemperatureC: { $lt: 0 }
})
Марс не имеет колец и имеет отрицательную температуру.
db.planets_name.find().sort({ surfaceTemperatureC: -1 }).limit(1)
Venus имеет максимальную температуру.
db.planets_name.bulkWrite([
{ updateOne: { filter: { name: "Mercury" }, update: { $set: { mass10e24kg: 0.33, type: "terrestrial" } } } },
{ updateOne: { filter: { name: "Venus" }, update: { $set: { mass10e24kg: 4.87, type: "terrestrial" } } } },
{ updateOne: { filter: { name: "Earth" }, update: { $set: { mass10e24kg: 5.97, type: "terrestrial" } } } },
{ updateOne: { filter: { name: "Mars" }, update: { $set: { mass10e24kg: 0.642, type: "terrestrial" } } } },
{ updateOne: { filter: { name: "Jupiter" }, update: { $set: { mass10e24kg: 1898, type: "gas giant" } } } },
{ updateOne: { filter: { name: "Saturn" }, update: { $set: { mass10e24kg: 568, type: "gas giant" } } } },
{ updateOne: { filter: { name: "Uranus" }, update: { $set: { mass10e24kg: 86.8, type: "ice giant" } } } },
{ updateOne: { filter: { name: "Neptune" }, update: { $set: { mass10e24kg: 102, type: "ice giant" } } } }
])
bulkWrite удобен, когда каждому документу нужно своё значение.