2014-01-31 5 views
12

Я использую mongoose over mongodb.Как добиться отката в транзакциях в монго?

В запросе и ответе сервера nodejs express обычно требуется отсутствие запросов к mongodb через mongoose.

Во многих случаях это может произойти, если сначала выполняется несколько запросов и все остальное не удалось выполнить по транзакции.

Теперь мне нужно откат моего состояния db до самого начального состояния db.

Итак, как я могу эффективно откатиться в mongodb? Просьба указать некоторые подходящие ссылки.

+0

Если вы хотите вписаться в функциональность MongoDB, «компенсационная» транзакция часто является полезным вариантом. В этом случае он «отменил» любые изменения. – WiredPrairie

+0

запросы не меняют документы. что именно вы хотите откат? –

ответ

4

Я согласен с Гектором , Если вам нужно несколько транзакций с документами, то Mongo может оказаться не очень подходящим для вас. Можете ли вы встроить свою структуру данных в один документ? Затем вы можете получить откат, который вы ищете.

Другой вариант - посмотреть на Mongo clone TokuMX, который предоставляет транзакции по нескольким документам.

+2

Операции TokuMX несовместимы с окантовкой. –

1

Нет поддержки для традиционных транзакций базы данных ACID в MongoDB, независимо от того, что вы положили поверх нее. Это не проблема с Mongoose или Express.js, это характерно для MongoDB.

MongoDB поддерживает атомарные операции, что означает, что сохранение в коллекции гарантированно будет полностью или неудачно, иначе вы не получите частичные обновления одного документа в коллекции. Но нет поддержки для нескольких обновлений в одной транзакции.

http://docs.mongodb.org/manual/faq/fundamentals/#does-mongodb-support-transactions

+0

Есть ли способ управлять этими несколькими транзакциями транзакций запросов? – codeofnode

+0

Если вы действительно нуждаетесь в этом, я бы предложил вам пересмотреть, если MongoDB является правильным выбором для вашего проекта. Возможно, вы должны использовать традиционную реляционную базу данных, которая поддерживает это из коробки. –

Смежные вопросы