は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ドライバを使用してジョブを実行しています。私はモンゴイドのインターフェースでこれを表現する方法を知らない。
もちろん可能です!選択なし (更新すべてのコレクションを):
Model.update_all(obsolete: false)
または選択して:
Model.where(:id.in => ids_array).update_all(obsolete: true)
これは動作します:
Model.all.inc(:position, -1)
は常に動作しません。更新メソッドには3つのパラメータしかないはずです。 – xpepermint
ああ、申し訳ありません、それは半分のルビー、半分のjavascriptでした。更新しました。 –