Pat*_*r92 2 python mongodb mongoengine
我该如何做才能进行涉及 mongoengine 上两种以上不同类型文档更新的交易?
使用以下方法,您可以在 mongoengine 中使用事务注意,在这种方法中,您的查询必须是使用 pymongo 的原始查询
from mongoengine import *
from mongoengine.connection import get_connection, get_db
connect('testdb')
class TestDocument(Document):
name = StringField(required=True)
mongo = get_connection()
with mongo.start_session() as session:
with session.start_transaction():
try:
test = TestDocument(name='test')
mongo.get_database(get_db()).get_collection('test_document').insert_one(
test.to_mongo(), session=session
)
# just for raising an exception
err = 1 / 0
except Exception as e:
print(e)
session.abort_transaction()
Run Code Online (Sandbox Code Playgroud)
这是请求的 mongoengine 功能: https ://github.com/MongoEngine/mongoengine/issues/1839
评论中描述了直接基于 pymongo 的解决方法。
| 归档时间: |
|
| 查看次数: |
4685 次 |
| 最近记录: |