2012-02-04 96 views

回答

2

雖然沒有直接等同於這個成語(組現場文檔的一些領域的一些功能),還有一個辦法做到這一點確切的更新。

Model.collection.update({}, # find all documents 
         {'$inc' => {:position => -1}}, # decrement position 
         :multi => true) # multi-update (update all) 

這是使用基礎的mongodb驅動程序來完成這項工作。我不知道如何在Mongoid界面中表達這一點。

+0

並不總是奏效。它說更新方法應該只有3個參數。 – xpepermint 2012-02-04 20:07:07

+0

啊,對不起,這是一半的紅寶石,一半的JavaScript。更新。 – 2012-02-04 20:09:47

0

當然可以! 沒有選擇(更新所有集合):

Model.update_all(obsolete: false) 

或選擇:

Model.where(:id.in => ids_array).update_all(obsolete: true) 
0

這工作:

Model.all.inc(:position, -1)