有没有办法在MongoDB服务器上执行一组非原子操作(使用Ruby驱动程序)作为单个原子操作?我需要的是基本上锁定某些对象/集合。Ruby MongoDB驱动程序中的“原子部分”?
0
A
回答
0
在Ruby驱动程序中没有办法做到这一点,因为在MongoDB中没有办法做到这一点。 Mongo仅支持单文档原子操作。所以基本上,一个文档的插入,更新或删除是以原子方式完成的,而不是跨多个文档的操作。
如果发生错误,您可以通过尝试手动“回滚”来伪造交易。在这种情况下的回滚将是用先前的值替换任何更改。但是这是手动的,并且没有ACID保证可以从大多数SQL服务器获得。
1
因为您可以对单个文档执行原子操作,所以有多种方法可以模拟您想要的内容。看到这篇文章:
http://kylebanker.com/blog/2010/06/07/mongodb-inventory-transactions/
而对于一些想法有背后的原理,看到这样一句:
http://www.eaipatterns.com/docs/IEEE_Software_Design_2PC.pdf
相关问题
- 1. TDD:Rspec Ruby MongoDB/Ruby Mongo驱动程序
- 2. 问题的MongoDB的Ruby驱动程序
- 3. MongoDB的红宝石驱动程序是在JavaScript驱动程序的顶部?
- 4. MongoDB的Java驱动程序
- 5. 部分使用c#驱动程序的mongodb upsert?
- 6. MongoDB C驱动程序
- 7. Java驱动程序MongoDB updateone
- 8. Ruby Mongo驱动程序 - Find_by_Id
- 9. 使用Ruby驱动程序
- 10. MongoDB驱动程序和轨道3
- 11. 检查Mongodb java驱动程序中存在的子字段
- 12. MongoDB的CakePHP的驱动程序安装
- 13. 如何使用MongoDB Ruby驱动程序做一个“组”(group by)?
- 14. 使用驱动程序内部的驱动程序的Linux
- 15. MongoDB的C++驱动程序安装
- 16. 如何在MongoDB的Java驱动程序
- 17. MongoDB的C#2.0驱动程序SetSerializationOptions
- 18. mongodb错误的PHP驱动程序
- 19. Node.js的哪个MongoDB驱动程序?
- 20. 有GridFS的C#MongoDB驱动程序
- 21. MongoDB的PHP7驱动程序安装
- 22. 驱动程序中缺少MongoDB驱动程序(查询生成器)?
- 23. MongoDB的Java驱动程序:mongojack,通过子文档ID查询
- 24. Ruby on Rails 3:如何将MapReduce与MongoDB Ruby驱动程序一起使用?
- 25. Mongodb java 3.0驱动程序误解
- 26. MongoDB C#驱动程序投影$ elemMatch $
- 27. Mongodb java驱动程序性能低下
- 28. MongoDB Java驱动程序阵列
- 29. Mongodb C++驱动程序和GridFS支持
- 30. MongoDB查询C#驱动程序
的事情是,这个效果很好,如果事情“出错”,即发生错误。但是,我更担心的是没有错误,没有错误,从应用程序的角度来看数据没有问题,但它们对用户来说是错误的。而当我们部署到Heroku时,我甚至无法确定如果用户向我们发送了两个请求,那么这两个请求将按照它们发送的相同顺序处理(每个请求可以被分配到不同的测试仪,每个可以在无效时处理,但技术上正确/可能的数据集)。不太可能,不要批评,但是让我失望:) – PJK 2010-11-18 22:30:03