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

⚠️ Ошибки

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

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

Практикум 16 закрепляет создание коллекции и запросы MongoDB на небольшом наборе planets.

Коллекцию лучше назвать с личным суффиксом, чтобы не конфликтовать с работой других студентов.

Основные поля: name, orderFromSun, hasRings, surfaceTemperatureC.

Фильтры тренируют равенство, диапазоны $gte/$lte, булевы поля и комбинирование условий.

Сортировка по orderFromSun помогает быстро проверить порядок планет.

countDocuments() подходит для подсчёта документов по условию.

После базовых запросов документы дополняются mass10e24kg, а затем используются в сортировках и группировках.

Топ-3 ошибки: записать отрицательные температуры с посторонним символом, перепутать true/false со строками, забыть обновить все планеты перед агрегацией.

Типичные ошибки

Температура записана как строка

Симптом: Запросы $gt/$lt начинают сравнивать не числа.

Исправление: Перевставить или обновить поле числом без кавычек.

true/false в кавычках

Симптом: find({ hasRings: true }) ничего не находит.

Исправление: Использовать булевы значения true и false.

Общий collection name

Симптом: Работы студентов мешают друг другу.

Исправление: Добавлять имя или инициалы к названию коллекции.

Неполное обновление массы

Симптом: Группировка по type показывает null.

Исправление: Перед агрегацией проверить db.planets_name.find({ type: { $exists: false } }).