findAndModify()提供哪種類型的鎖定?是隻寫鎖還是讀/寫?它是否阻止同一記錄上的同時更新?findAndModify是否有效地鎖定文檔以防止更新衝突?
回答
根據MongoDB文檔MongoDB: findAndModify()下MongoDB: Atomic Operations它應該是。
MongoDB具有一個全局(每實例)寫入鎖,它將服務器中所有數據的所有更新序列化(儘管分片羣集中的不同服務器將各自擁有自己的獨立鎖)。這意味着在任何特定時刻,只有一個更新發生在任何文檔上,因此對於任何給定的文檔只有一個更新。
findAndModify
在這方面與普通的update
沒有什麼不同 - 它只是將文檔返回給您。
我認爲將文檔中的明確原子性聲明解釋爲未來語義的保證(與其未來用戶羣的契約)是合理的,同時(傳聞)關於現有更新語義或其他缺少此類承諾的操作的意見作爲質量代碼中不應依賴的實施細節。 – 2012-01-01 11:24:12
我不太確定我的答案的哪一部分 - 如果有的話 - 這是參考。但是原子更新語義對'findAndModify'和普通的'update'均有保證。實現(當前,全局寫鎖)可能會改變,但語義將保持不變。 – dcrosta 2012-01-02 01:06:03
- 1. CustomPouchError 409衝突文檔更新衝突
- 2. 缺陷是否可以鎖定,以防止創建任務?
- 3. 防止jQuery點擊()衝突
- 4. 如何防止文檔使用更新
- 5. 是否可以防止在wordpress中更新特定的metafield?
- 6. 文件鎖定已更新Sharepoint文檔
- 7. PostgreSQL表鎖定衝突
- 8. 是否有Firebug/fancyBox衝突?
- 9. 按下箭頭鍵時是否可以防止文檔滾動?
- 10. 在Force.com站點上阻止common.css以防止與Bootstrap.css衝突?
- 11. 此鎖定代碼是否有效?
- 12. 衝突更新viewcontrollers
- 13. 是否有可能檢查SVN更新是否會導致衝突?
- 14. ActiveRecord是否處理鎖定和更新?
- 15. 更有效地瀏覽JDK文檔
- 16. 防止PHP中的會話衝突
- 17. Rails:防止ID與方法衝突
- 18. 衝突防止顯示背景視頻
- 19. 刪除iframe並防止與庫衝突
- 20. 防止Graphics2D中的矩形衝突?
- 21. 相應地鎖定和更新文件
- 22. PouchDB打電話獲得409:文檔更新衝突
- 23. T必須是衝突有效
- 24. Spring Mongodb findandModify無法更新整個文檔
- 25. 如何防止JavaScript文件與另一個文件衝突?
- 26. 如何最有效地更新MongoDB中的大量文檔?
- 27. 是否可以讀取鎖定文件?
- 28. 監控用戶會話以防止編輯衝突
- 29. 確定課程時間是否衝突
- 30. 更新時MySQL-libs文件衝突PHP
保證每個分片實例是我們所需要的,謝謝 – user646584 2012-01-01 07:32:33