2017-02-15 8 views
2

mongooseを使用して一度に多くのドキュメントを更新し、すべての変更されたドキュメントを返す方法を探しています。私はmulti:trueupdate()に設定しようとしました。一致するすべてのドキュメントを更新していますが、何も返しません。その後、私はfindOneAndUpdate()で試しました。一致する文書が多数ある場合でも、1つの文書のみを更新して返します。うん、関数名自体は、それは1つだけ更新されますが、私はまだ試みたことを伝えます。 のようなオプションをfindOneAndUpdate()に設定できませんでした。どのようにそれを行うことができますか?前もってありがとう複数のドキュメントを更新し、すべての更新されたドキュメントを返す

答えて

2

私はMongoDBで複数のドキュメントを更新し、同じクエリですべての更新されたドキュメントを返すことはできません。

Mongooseでは、findOneAndUpdate()はMongoDBのネイティブの方法に基づいています。

あなたはfindAndModify()方法、その状態の公式documentation確認した場合 -

findAndModifyコマンドの修正をして、単一のドキュメントを返します。

クエリは複数のドキュメントと一致する可能性がありますが、findAndModifyは変更するドキュメントを1つだけ選択します。

したがって、findAndModifyを使用して複数のドキュメントを更新することはできません。一方、

update()またはupdateMany()方法はmultiフラグで多くの文書を更新しますが、それだけでこのようになりますWriteResult返す -

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) 
+1

おかげ@Jyotman明確化のために。私は2つの異なった質問のために行く。 – RaR

関連する問題