2011-04-07 13 views
47

これは愚かな質問のようですが、私はまだ答えを見つけていません。 MongoDBコレクション内のすべてのレコードに同じfield-> valueを追加したければ、適切なシェルコマンドは何でしょうか?私は空のクエリで複数の更新をやってみました({})それは、このエラーが発生しました:MongoDB:無条件更新ですか?

マルチアップデートはわずか$演算子

で動作します私はこれを回避する方法について少し困惑しています。助言がありますか?

答えて

98

エラーはすべてです:$ modifier operatorsを使用して複数のドキュメントのみを変更できます。

> db.coll.update({ }, { a: 'b' }, false, true); 

通常偽だった{ a: 'b' }multi場合に、コレクションに最初のオブジェクトを置き換えます:あなたは、おそらくこのようなものを持っていました。コレクション内のすべてのオブジェクトを同じドキュメントに置き換えることは望ましくありません。

利用代わり$set operatorは:

> db.coll.update({ }, { '$set': { a: 'b' } }, false, true); 

これは'b'にすべての文書(必要に応じて作成)のaプロパティを設定します。

+0

助けてくれてありがとう!それは確かに私の間違いでした。 –

+1

引用符のない '$ set'も動作します – Jaider

関連する問題