有沒有辦法在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 Group使用Ruby驅動程序
- 4. MongoDB的紅寶石驅動程序是在JavaScript驅動程序的頂部?
- 5. MongoDB的Java驅動程序
- 6. 部分使用c#驅動程序的mongodb upsert?
- 7. 在Ruby中的MongoDB驅動程序阻止findAndModify
- 8. C#MongoDB驅動程序OutOfMemoryException
- 9. Java驅動程序MongoDB updateone
- 10. findOne NodeJS MongoDB驅動程序
- 11. MongoDB WriteConcern Java驅動程序
- 12. MongoDB C驅動程序
- 13. MongoDB C++驅動程序中的Upate DB
- 14. 查詢的MongoDB的ObjectId使用Ruby驅動程序
- 15. 使用Ruby驅動程序
- 16. Ruby Mongo驅動程序 - Find_by_Id
- 17. MongoDB的返回代碼含義(Ruby驅動程序)
- 18. MongoDB驅動程序和軌道3
- 19. MongoDB的C#驅動程序更新在一個原子操作多個文檔
- 20. 使用Java驅動程序更新MongoDB中子字段的值?
- 21. 用C#MongoDB驅動程序限制子文檔中的行
- 22. 檢查Mongodb java驅動程序中存在的子字段
- 23. MongoDBb C#驅動程序等效於MongoDb C++驅動程序中的getFieldDotted?
- 24. MongoDB與Ruby驅動程序如何使用curl創建字段?
- 25. 在插入文檔時MongoDB Ruby驅動程序類型轉換
- 26. MongoDB Ruby驅動程序和IPV6連接失敗
- 27. 如何使用MongoDB Ruby驅動程序做一個「組」(group by)?
- 28. MongoDB的CakePHP的驅動程序安裝
- 29. 使用驅動程序內部的驅動程序的Linux
- 30. MongoDB的C#驅動程序和ISODate
的事情是,這個效果很好,如果事情「出錯」,即發生錯誤。但是,我更擔心的是沒有錯誤,沒有錯誤,從應用程序的角度來看數據沒有問題,但它們對用戶來說是錯誤的。而當我們部署到Heroku時,我甚至無法確定如果用戶向我們發送了兩個請求,那麼這兩個請求將按照它們發送的相同順序處理(每個請求可以被分配到不同的測試儀,每個可以在無效時處理,但技術上正確/可能的數據集)。不太可能,不要批評,但是讓我失望:) – PJK 2010-11-18 22:30:03