我在mongodb上使用mongoose。
在来自nodejs express服务器的请求和响应中,通常需要通过mongoose对mongodb进行查询。
在许多情况下,如果首先成功执行一些查询并且在交易中休息全部失败,则可能会发生这种情况。
现在我需要将db状态回滚到db的初始状态。
那么我怎样才能在mongodb中高效回滚? 请提供一些合适的参考资料。
答案 0 :(得分:4)
通过mongo教程
这是我发现进行两阶段提交的链接(可能无法保证):
http://docs.mongodb.org/manual/tutorial/perform-two-phase-commits/
答案 1 :(得分:4)
我同意赫克托耳。如果您需要多个文档事务,那么Mongo可能不适合您。您可以将数据结构嵌入到单个文档中吗?然后你就可以得到你正在寻找的回滚。
另一个选择是查看Mongo clone TokuMX,它提供跨多个文档的事务。
答案 2 :(得分:1)
MongoDB中不支持传统的ACID数据库事务,无论你放在它上面的是什么。这不是Mongoose或Express.js的问题,它是MongoDB的一个特征。
MongoDB支持原子操作,这意味着保证集合保存完全成功或失败,换句话说,您不会对集合中的单个文档进行部分更新。但是在单个事务中不支持多次更新。
http://docs.mongodb.org/manual/faq/fundamentals/#does-mongodb-support-transactions