交易 mongodb

Transaction mongodb

我需要使用 'all or nothing' 进程写入两个不同的 mongodb 集合。仅供参考,我在后端使用 NodeJs。

据我所知,MongoDb 在涉及单个集合时提供原子性,但在我们需要写入多个集合时则不会。

所以我想知道一种在 nodejs/mongodb 中模拟此事务的方法,以避免在另一个集合失败时写入一个集合并得到如果第二个进程失败,则执行 'roll back' 的可能性。

谢谢大家!

在 MongoDB(4.0 之前)中,您无法在数据库级别完全实现事务。但是,有一些机制可以提供一些交易功能。您可以在 documentation.

中阅读有关它们的信息

从MongoDB 4.0开始,支持交易。您当前的代码只需很少的改动即可支持它们。 documentation fully dedicated to the subject

中有一个新部分

我编写了一个实现上述两阶段提交系统的库。在这种情况下它可能会有所帮助。 Fawn - Transactions for MongoDB

从 4.0 版开始 MongoDB 将添加对 multi-document 事务的支持。 MongoDB 中的事务类似于关系数据库中的事务。 有关详细信息,请访问此 link: https://www.mongodb.com/blog/post/multi-document-transactions-in-mongodb?jmp=community

多文档事务已经在MongoDB 4.0中引入!!!

https://docs.mongodb.com/manual/core/transactions