Mochics
Mochics

Reputation: 57

Transaction mongodb

I need to write into two different mongodb collections using an 'all or nothing' process. Fyi I use NodeJs in my backend side.

As far as I know MongoDb provides atomicity when it comes to a single collection, but it does not when we need to write into multiple collections.

So I'd like to know a way of emulating this a transaction in nodejs/mongodb in order to avoid writing into one collection if the other failed and also getting the possibility of doing a 'roll back' if the second process fails.

Thank you guys!

Upvotes: 2

Views: 7151

Answers (4)

JustLogin
JustLogin

Reputation: 1890

In MongoDB (prior to 4.0) there is no way you can fully implement transactions on database level. However, there are some mechanisms which provides some transactions functionality. You can read about them in documentation.

Since MongoDB 4.0, transactions are supported. Very little chage is needed in your current code to support them. There's a new section in the documentation fully dedicated to the subject

Upvotes: 2

jay
jay

Reputation: 1471

The transactions for multi-document have been introduced in MongoDB 4.0 !!!

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

Upvotes: 3

Pranab Sharma
Pranab Sharma

Reputation: 739

Starting from version 4.0 MongoDB will add support for multi-document transactions. Transactions in MongoDB will be like transactions in relational databases. For details visit this link: https://www.mongodb.com/blog/post/multi-document-transactions-in-mongodb?jmp=community

Upvotes: 5

e-oj
e-oj

Reputation: 207

I wrote a library that implements the two phase commit system mentioned above. It might help in this scenario. Fawn - Transactions for MongoDB

Upvotes: 4

Related Questions