⚡ Кратко: главные команды
pip install pymongo — установка библиотеки.
MongoClient(...) — подключение к серверу MongoDB.
client.admin.command("ping") — проверка подключения.
db = client["db_name"] — выбор базы данных.
collection = db["collection_name"] — выбор коллекции.
insert_one(doc), insert_many(list) — вставка документов.
find_one(filter), find(filter) — чтение документов.
update_one(filter, {"$set": {...}}), update_many(...) — обновление.
delete_one(filter), delete_many(filter) — удаление.
client.close() — закрытие соединения.
import module, from module import name — импорт модулей.
🔖 Справочник по PyMongo
Подключение
| Команда / параметр | Описание | Пример |
MongoClient(uri) |
Создаёт клиент для подключения к MongoDB |
client = MongoClient("mongodb://user:pass@host/db") |
client.admin.command("ping") |
Проверяет доступность сервера |
client.admin.command("ping") |
client["db_name"] |
Возвращает объект базы данных |
db = client["ich_edit"] |
db["collection_name"] |
Возвращает объект коллекции |
products = db["products"] |
client.close() |
Закрывает соединение с сервером |
client.close() |
CRUD-методы коллекции
| Метод | Описание | Пример |
insert_one(document) |
Вставляет один документ |
result = products.insert_one({"name": "Pen"}) |
insert_many(documents) |
Вставляет список документов |
result = products.insert_many([{...}, {...}]) |
find_one(filter=None, projection=None) |
Возвращает первый документ или None |
doc = products.find_one({"name": "Pen"}) |
find(filter=None, projection=None) |
Возвращает курсор с документами |
docs = products.find({"price": {"$lt": 5}}) |
update_one(filter, update) |
Обновляет первый подходящий документ |
products.update_one({"name": "Pen"}, {"$set": {"price": 2}}) |
update_many(filter, update) |
Обновляет все подходящие документы |
products.update_many({}, {"$inc": {"price": 1}}) |
delete_one(filter) |
Удаляет первый подходящий документ |
products.delete_one({"name": "Pen"}) |
delete_many(filter) |
Удаляет все подходящие документы |
products.delete_many({"price": {"$lt": 1}}) |
Работа с курсором
| Метод | Описание | Пример |
cursor.sort(key, direction) |
Сортирует результаты. 1 — по возрастанию, -1 — по убыванию |
products.find().sort("price", -1) |
cursor.skip(n) |
Пропускает первые n документов |
products.find().skip(5) |
cursor.limit(n) |
Ограничивает результат n документами |
products.find().limit(10) |
list(cursor) |
Преобразует курсор в список |
docs = list(products.find()) |
Операторы фильтрации
| Оператор | Значение | Пример |
$eq | Равно | {"name": {"$eq": "Pen"}} |
$ne | Не равно | {"name": {"$ne": "Pen"}} |
$gt | Больше | {"price": {"$gt": 5}} |
$gte | Больше или равно | {"price": {"$gte": 5}} |
$lt | Меньше | {"price": {"$lt": 5}} |
$lte | Меньше или равно | {"price": {"$lte": 5}} |
$in | Входит в список | {"name": {"$in": ["Pen", "Pencil"]}} |
$regex | Поиск по регулярному выражению | {"name": {"$regex": "^P"}} |
⚠️ Проверить по документации: полный список операторов запросов см. в документации MongoDB. В лекции упоминаются только основные операторы сравнения.
Операторы обновления
| Оператор | Значение | Пример |
$set | Устанавливает значение поля | {"$set": {"price": 10}} |
$inc | Увеличивает числовое поле | {"$inc": {"stock": -1}} |
$unset | Удаляет поле | {"$unset": {"old_field": ""}} |
$mul | Умножает числовое поле | {"$mul": {"price": 1.2}} |
⚠️ Проверить по документации: в лекции рассматриваются только $set и $inc. Остальные операторы обновления см. в документации MongoDB.
Импорт модулей
| Конструкция | Описание | Пример |
import module |
Импортирует весь модуль |
import math_utils |
from module import name |
Импортирует конкретный объект |
from math_utils import maximum |
from module import * |
Импортирует все публичные имена |
from math_utils import * |
from .module import name |
Относительный импорт внутри пакета |
from .text_utils import count_words |
Основные исключения
| Исключение | Когда возникает |
pymongo.errors.ConnectionFailure | Ошибка подключения к серверу MongoDB |
pymongo.errors.OperationFailure | Ошибка выполнения запроса или недостаточно прав |
pymongo.errors.DuplicateKeyError | Попытка вставить документ с уже существующим _id |
pymongo.errors.PyMongoError | Базовый класс для всех исключений pymongo |
⚠️ Проверить по документации: полная иерархия исключений и их параметры описаны в официальной документации PyMongo.