2012-04-11 20 views

回答

3

MongoDB update method狀態下的文件:

- 指示是否匹配標準的所有文件應當更新而不是僅僅一個。可以在下面的$操作符中使用。

所以基本上multi參數是什麼讓你鏈接到問題update_all行爲。

在回答你的第二個問題:yes - Mongoid現在內置了這個功能。文檔參考是here。但是你可以使用它像這樣:

User.where(:gender => "Male").update_all(:title => "Mr") 

更新

在你要推的值到一個數組字段的情況下,你仍然需要直接使用MongoDB的圖書館,因爲Mongoid update_all方法僅支持$set數據庫更新方法(可用於更新整個數組,但不會將值推入)。

在回答您鏈接到會的工作問題上的例子,我抄它低於誰碰到這個問題絆倒(感謝shingara!):

User.collection.update( 
    {'$in' => {:gender => 'Male'}}, 
    {'$push' => {:titles => 'Mr'}}, 
    {:multi => true} 
) 
+0

感謝@theTRON,對於問題2:您顯示更新普通字段,是否也可以使用它將值推入數組字段? – larryzhao 2012-04-11 13:42:21

+0

Mongoid文檔提到它使用'$ set'方法 - 它設置一個字段的值。所以你必須去MongoDB庫 - 我已經更新了我的答案以反映這一點。 – theTRON 2012-04-11 14:03:18

+0

謝謝,所以這意味着仍然使用這種方式。 :) – larryzhao 2012-04-11 14:35:12

相關問題