mongoengine 是不是支持 MongoDB 中的 Transactions API?

Posted

技术标签:

【中文标题】mongoengine 是不是支持 MongoDB 中的 Transactions API?【英文标题】:Does mongoengine support for Transactions API in MongoDB?mongoengine 是否支持 MongoDB 中的 Transactions API? 【发布时间】:2021-03-07 00:39:10 【问题描述】:

mongoengine 是否支持 MongoDB 中的 Transactions API?我正在尝试使用 python 脚本访问 mongodb。我能够使用 mongoengine 库成功地进行 crud 操作。但我需要扩展该程序,以便能够通过 Transactions API 访问数据库数据。我使用 ubuntu OS 和 python 进行开发。任何人都可以通过简单的示例帮助我如何做到这一点?非常感谢.... https://docs.mongodb.com/manual/core/transactions/

【问题讨论】:

【参考方案1】:

虽然底层驱动程序 (pymongo) 支持事务,但 MongoEngine 还不支持,因此您不能将 pymongo 的 Session 对象与 MongoEngine 文档实例一起使用。

来自项目https://github.com/MongoEngine/mongoengine/issues/2248的相关票证

【讨论】:

【参考方案2】:

MongoEngine 是一个 ODM。事务由驱动程序实现。 ODM 可能会提供额外的与事务相关的语法/功能,但这将在驱动程序之上。

根据http://docs.mongoengine.org/faq.html MongoEngine 使用 pymongo。 pymongo 是一个驱动程序并实现事务。因此,您需要弄清楚如何从 MongoEngine 访问驱动程序的会话对象,然后使用该会话对象执行 https://pymongo.readthedocs.io/en/stable/api/pymongo/client_session.html 中所述的事务。

【讨论】:

以上是关于mongoengine 是不是支持 MongoDB 中的 Transactions API?的主要内容,如果未能解决你的问题,请参考以下文章

django结合mongoengine实现对mongodb的操作

mongoengine

django连接mongodb mongoengine

MongoDB:运行更快的查询,这更好 Pymongo 或 MongoEngine

使用 mongoengine 将多文档插入到 mongodb

使用 pyMongo 和 MongoEngine 从 MongoDb 列表中删除对象及其索引?