Node.js、mongoDB、mongooseを使用する:
私はdbコレクションを持っていますwhosレコードは文字列の配列のフィールドを持っています。
渡された文字列に一致するすべてのレコードの配列内のアイテムを削除する必要があります。
これには、一致を含む配列を持つすべてのレコードの検索、配列からのアイテムのスプライシング、およびレコードのデータベースへの保存が含まれます。
私はこれを行う方法を見つけるのに苦労しています。
$pull
これは aまたは aで実行できるはずです$pullAll
(ここで説明されているように: www.mongodb.org/display/DOCS/Updating#Updating-%24pull)。たとえば、シェルでは次のようになります。
> db.coll.update({}, {$pull : {arrField : passedString}}, false, true);
これにより、 arrField 配列が存在する場合は、そこから passedString を取得してすべてのドキュメントを更新します。(false
アップサートなし、true
複数のドキュメントを更新するため。)
次のようなものを使用できます
Model.update({}, {$pull : {arrField : passedString}}, function(){})