這是可能使用Rails + Mongoid:Rails + mongoid:update_all(「position = position-1」)?
Model.update_all("position=position-1")
這是可能使用Rails + Mongoid:Rails + mongoid:update_all(「position = position-1」)?
Model.update_all("position=position-1")
雖然沒有直接等同於這個成語(組現場文檔的一些領域的一些功能),還有一個辦法做到這一點確切的更新。
Model.collection.update({}, # find all documents
{'$inc' => {:position => -1}}, # decrement position
:multi => true) # multi-update (update all)
這是使用基礎的mongodb驅動程序來完成這項工作。我不知道如何在Mongoid界面中表達這一點。
當然可以! 沒有選擇(更新所有集合):
Model.update_all(obsolete: false)
或選擇:
Model.where(:id.in => ids_array).update_all(obsolete: true)
這工作:
Model.all.inc(:position, -1)
並不總是奏效。它說更新方法應該只有3個參數。 – xpepermint 2012-02-04 20:07:07
啊,對不起,這是一半的紅寶石,一半的JavaScript。更新。 – 2012-02-04 20:09:47