/
nalbulanov
/
bit_database_systems
Обзор
Документация
Войти
/
nalbulanov
/
bit_database_systems
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
script.py
47 строк
1 KB
nalbulanov
create script.py
11 апр 2025, 19:35
11 апр 2025, 19:35
47b8de8
Код
Авторство
О чём код?
from pymongo import MongoClient from pymongo.errors import PyMongoError client = MongoClient('mongodb://rootuser:rootpass@localhost:27017/') db = client.get_database('shopsmart') session = client.start_session() try: session.start_transaction() order_id = 100 order = db.orders.find_one({'_id': order_id}, session=session) if not order: raise Exception("Заказ не найден") product_id = order['product_id'] quantity = order['quantity'] order_update_result = db.orders.update_one( {'_id': order_id}, {'$set': {'status': 'отменён'}}, session=session ) if order_update_result.modified_count == 0: raise Exception("Не удалось обновить статус заказа") product_update_result = db.products.update_one( {'_id': product_id}, {'$inc': {'stock': quantity}}, session=session ) if product_update_result.modified_count == 0: raise Exception("Не удалось обновить количество товара на складе") session.commit_transaction() print("Заказ отменён и количество товара возвращено на склад.") except (PyMongoError, Exception) as e: session.abort_transaction() print("Ошибка:", str(e)) finally: session.end_session()