2012-02-04 7 views

答えて

2

(ドキュメントのいくつかのフィールドのいくつかの機能に設定されたフィールド)このイディオムとは直接同等ありませんが、この正確な更新を行う方法があります。

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

これは、基本的なmongodbドライバを使用してジョブを実行しています。私はモンゴイドのインターフェースでこれを表現する方法を知らない。

+0

は常に動作しません。更新メソッドには3つのパラメータしかないはずです。 – xpepermint

+0

ああ、申し訳ありません、それは半分のルビー、半分のjavascriptでした。更新しました。 –

0

もちろん可能です!選択なし (更新すべてのコレクションを):

Model.update_all(obsolete: false) 

または選択して:

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

これは動作します:

Model.all.inc(:position, -1) 
関連する問題