update
ステートメントが正しくない、引数が間違っている-複数の $set
更新メソッドのさまざまなパラメーターとしての操作とオプション。それらは、個別に指定された更新パラメーターの下にある必要があります。正しいNode.js
update(selector, document, options, callback)
ここでselector
更新操作のセレクター/クエリであるオブジェクト、document
は、更新ドキュメントであり、最後にoptions
であるオブジェクトでもあります。 デフォルトでnullであり、オプションの更新設定を持つオブジェクト。
ここでやっています
update(selector, document, selector, document, options, options, callback)
どのmongoが最初の2つのパラメーターを正しいものとして使用してコレクションを更新していて、当然エラーをスローします
指定された誤ったパラメータが多すぎるためです。
また、位置演算子の使い方が間違っています。クエリではなく、更新するドキュメントの一部である必要があります。
正しい実装については、この更新に従ってください
db.getCollection('profiles').update(
/* selector */
{
"_id": ObjectId("57a9aa24e93864e02d91283c"),
"ratings.round": 1
},
/* update document */
{
"$set": {
"presentRound": 2,
"interviewStatus": "in process",
"scheduleInterviewStatus": false,
"ratings.$.roundStatus": "selected"
}
},
/* optional settings */
{ upsert: true, multi: true }
)