Вашата update
твърдението е неправилно, има неправилно поставени аргументи - поставяте множество $set
операции и опции като различни параметри на метода за актуализиране; те трябва да бъдат под отделни определени параметри за актуализиране. Правилният синтаксис
на Node.js е:
update(selector, document, options, callback)
където selector
е обект, който е селектор/заявка за операцията за актуализиране, document
също е обект, който е актуализиращият документ и накрая options
обект, който по подразбиране е null и има незадължителните настройки за актуализиране.
Ето какво правите
update(selector, document, selector, document, options, options, callback)
В който mongo актуализира колекцията, като използва първите два параметъра като правилни и естествено извежда грешката
защото сте посочили твърде много неправилни параметри.
Освен това имате неправилно използване на позиционния оператор. Трябва да е част от документа, който ще се актуализира, а не в заявката.
За правилно внедряване следвайте тази актуализация
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 }
)