
事务
|
171
client = MongoClient(uriString)
my_wc_majority = WriteConcern('majority', wtimeout=1000)
# 前提条件/步骤0:如果集合不存在,就创建集合
# 事务中的CRUD操作必须在已存在的集合中进行
client.get_database( "webshop",
write_concern=my_wc_majority).orders.insert_one(
{"sku": "abc123", "qty":0})
client.get_database( "webshop",
write_concern=my_wc_majority).inventory.insert_one(
{"sku": "abc123", "qty": 1000})
# 步骤1:定义回调方法以指定在事务内部执行的操作序列
def callback(my_session):
orders = my_session.client.webshop.orders
inventory = my_session.client.webshop.inventory
# 重要:必须将会话变量my_session传递给操作
orders.insert_one({"sku": "abc123", "qty": 100}, session=my_session)
inventory.update_one({"sku": ...