Su update
la declaración es incorrecta, tiene argumentos fuera de lugar:está colocando múltiples $set
operaciones y opciones como parámetros diferentes al método de actualización; deben estar bajo parámetros de actualización designados por separado. La sintaxis
de Node.js es:
update(selector, document, options, callback)
donde selector
es un objeto que es el selector/consulta para la operación de actualización, document
también es un objeto que es el documento de actualización y finalmente un options
objeto que por defecto es nulo y tiene la configuración de actualización opcional.
Aquí lo estás haciendo
update(selector, document, selector, document, options, options, callback)
En el que mongo está actualizando la colección utilizando los dos primeros parámetros como correctos y, naturalmente, arroja el error
porque ha especificado demasiados parámetros incorrectos.
Además, tiene un uso incorrecto del operador posicional. Debe ser parte del documento a actualizar, no en la consulta.
Para la implementación correcta, siga esta actualización
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 }
)