2013-08-16 17 views
1

說我做一個收集,多文檔操作通過貓鼬如貓鼬:我可以假設一下我在錯誤的情況下

// all my_model doc's have flag==false here 
my_model.update({flag:false}, {flag:true}, {multi:true}, function(err) { 
    if (err) { 
     // what can I assume here? 
    } 
}); 

數據我能說我的my_model什麼文件出現錯誤?請問有些人有​​?或者從某種意義上說它是一個原子操作,如果出現錯誤,則不會發生任何更新?

這種行爲在其他多文檔操作中是否與單個集合一致(例如remove())?這是我爲非酸性支付的價格嗎?

編輯:從MongoDB的文檔:

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

由於其他操作交錯,我只能假設,然後,在一個錯誤的情況下,數據將是一個transtional狀態,一些文檔更新,則沒有。

回答

1

你的直覺是正確的。如果多文檔更新過程中出現錯誤,您可能會遇到這樣的情況,其中一些文檔有​​,其他文檔有flag == false

+1

感謝您的迴應 - 免費接受! – Colin

相關問題