2012-04-11 10 views
4

Node.js、mongoDB、mongooseを使用して:Mongoose:配列内の1つのアイテムに一致する配列値でドキュメントを更新するにはどうすればよいですか?

私はレコードに文字列のフィールドを持つdbコレクションを持っています。

渡された文字列と一致するすべてのレコードの配列内の項目を削除する必要があります。

これは、配列からの一致、スプライシング項目を含む配列を持つすべてのレコードを検索し、レコードをdbに保存し直します。

私はこれを行う方法を考えるのに苦労しています。

答えて

4

これは、$pullまたは$pullAll(ここに記載されています:www.mongodb.org/display/DOCS/Updating#Updating-%24pull)で行うことができます。例えば、シェルで:それが存在する場合は

> db.coll.update({}, {$pull : {arrField : passedString}}, false, true); 

これは、arrField配列からpassedStringを引いて、すべてのドキュメントを更新します。 (なしアップサート用falsetrue複数のドキュメントを更新する。)

3

あなたは

Model.update({}, {$pull : {arrField : passedString}}, function(){}) 
のようなものを使用することができます
関連する問題