Как добиться отката в транзакциях в монго?
Я использую мангуст над mongodb.
В запросе и ответе от nodejs express server обычно требуется отсутствие запросов к mongodb через mongoose.
Во многих случаях это может случиться, если сначала несколько запросов выполняются успешно и все остальное не удалось выполнить в транзакции.
Теперь мне нужно откат моего состояния db до самого начального состояния db.
Итак, как можно эффективно откатываться в mongodb?
Пожалуйста, предоставьте несколько подходящих ссылок.
Ответы
Ответ 1
Я согласен с Гектором. Если вам нужно несколько транзакций с документами, то Mongo может оказаться не очень подходящим для вас. Можете ли вы встроить свою структуру данных в один документ? Затем вы можете получить откат, который вы ищете.
Другой вариант - посмотреть на Mongo clone TokuMX, который предоставляет транзакции по нескольким документам.
Ответ 2
Прохождение учебников по монго
Вот ссылка, которую я нашел для совершения двухфазных коммитов (может быть, это не гарантировано):
http://docs.mongodb.org/manual/tutorial/perform-two-phase-commits/
Ответ 3
Нет поддержки для традиционных транзакций базы данных ACID в MongoDB, независимо от того, что вы положили поверх нее. Это не проблема с Mongoose или Express.js, это характерно для MongoDB.
MongoDB поддерживает атомарные операции, что означает, что сохранение в коллекции гарантировано полностью или полностью завершится неудачей, другими словами, вы не получите частичных обновлений одного документа в коллекции. Но нет поддержки для нескольких обновлений в одной транзакции.
http://docs.mongodb.org/manual/faq/fundamentals/#does-mongodb-support-transactions