次MongoDB update method状態のドキュメントは:
マルチ - 条件に一致するすべての文書が一つだけではなく、更新されるべきかどうかを示します。以下の$演算子で便利に使うことができます。
したがって、基本的にmulti
パラメータは、リンク先の質問でupdate_all
の動作を有効にするものです。
あなたの2番目の質問に答えて:はい - モンゴイドにはこの機能が組み込まれています。ドキュメントの参照は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}
)
おかげ@theTRONは、質問2のために:あなたは、プレーンフィールドを更新するために示した、配列のフィールドに値をプッシュするためにそれを使用することも可能ですか? – larryzhao
Mongoidのドキュメントでは、フィールドの値を設定する '$ set'メソッドを使用すると言います。だからあなたはMongoDBライブラリにアクセスする必要があります - 私はこれを反映するために私の答えを更新しました。 – theTRON
ありがとう、その手段はまだこの方法を使用しています。 :) – larryzhao