有沒有辦法在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