2014-01-23 44 views
0

鎖定集合我有一個集合在我的數據庫如何在MongoDB中

1.I要鎖定我的收藏當用戶更新文檔

2.No操作完成期待讀取而更新收集其他用戶

請給點建議如何鎖定集合中的MongoDB

問候

GSY

回答

0

見MongoDB的文檔上write operations特別關注到本節:

寫操作

單個文檔的修改的分離始終是原子,即使寫操作修改>多個子 - 該文件內的文件。對於修改多個文檔的寫入操作,整個操作不是原子操作,其他操作可能會交錯。

沒有其他操作是原子的。但是,您可以嘗試隔離使用隔離操作符影響多個文檔的寫入操作。

要將一系列寫入操作與其他讀取和寫入操作隔離,請參閱執行>兩階段提交。

2

MongoDB已經實現了寫入器貪婪的數據庫級鎖。

這意味着,當一個特定的文件被寫入:

  • User集合將被鎖定
  • 沒有讀取將一直持續到將數據寫入

的原因,沒有可用的讀取是因爲MongoDB在寫作時無法做到一致的讀取(讓你物理化,你再次獲勝)。

值得注意的是,如果你希望有一個更復雜的鎖,跨越多行,那麼這在MongoDB中將不可用,並且沒有真正的實現這種方式的方法。

+0

謝謝Sammaye ......... – sagar