Урок 84. MongoDB и Python. Модули
⚡ Кратко: суть темы
MongoDB и Python — работаем с документоориентированной базой данных через библиотеку pymongo: подключаемся, добавляем, читаем, обновляем и удаляем документы.
- Устанавливаем
pip install pymongoи подключаемся черезMongoClient(...). - База и коллекция выбираются как
client["db_name"]иdb["collection_name"]. - Документы — обычные Python-словари. CRUD-методы:
insert_one,insert_many,find_one,find,update_one,update_many,delete_one,delete_many. - Обрабатывай ошибки через
pymongo.errors, а не голыйException. - Модуль — любой
.pyфайл. Пакет — папка с модулями и__init__.py. Используйif __name__ == "__main__", чтобы код не выполнялся при импорте.
Что запомнить: MongoDB не требует заранее заданной схемы, но документы нужно правильно фильтровать словарями-условиями.
Частая ошибка: перепутать фильтр и проекцию в find() или забыть, что find() возвращает курсор, а не список.
📖 О чём этот урок
Реляционные базы данных хранят данные в таблицах со строгой структурой. MongoDB работает иначе: данные хранятся в документах — гибких JSON-подобных записях, которые удобно создавать и изменять из Python. В этом уроке мы научимся подключаться к MongoDB, выполнять CRUD-операции и правильно обрабатывать ошибки.
Также мы разберём, как устроены модули и пакеты в Python: зачем они нужны, как импортировать свои файлы и как собирать из них структурированные проекты.
Что изучим
- Установку
pymongoи подключение к MongoDB черезMongoClient. - Выбор базы данных и коллекции.
- Добавление документов:
insert_oneиinsert_many. - Чтение документов:
find_one,find, курсор, сортировка, пропуск, лимит и проекция. - Обновление документов:
update_one,update_many,$set,$inc. - Удаление документов:
delete_oneиdelete_many. - Обработку ошибок через исключения
pymongo.errors. - Модули в Python: встроенные, сторонние и пользовательские.
- Конструкцию
if __name__ == "__main__"и папку__pycache__. - Пакеты: папки с
__init__.pyи относительные импорты.
📚 Что повторить перед изучением
- ← Урок 80: MySQL и Python
- ← Урок 81: Практикум 20
- ← Урок 82: MySQL. Транзакции
- ← Урок 83: Summary session 21
- Словари, списки и циклы
for(уроки 34–36). - Исключения и конструкция
try ... except(урок 48). - Функции и разделение кода на части (уроки 26–28).