sql >> Base de Datos >  >> NoSQL >> MongoDB

MongoError operador de nivel superior desconocido:$set

El problema es que está utilizando la sintaxis para el método de actualización incorrecto. . Debería usar este método sintaxis, asumiendo que scores es un documento.

return scores.updateQ({
    $set: { "partId": partId, "activityId": activityId},
    $unset: { topicType: '', topicId: '', courseId: ''}
},
{ strict: false });

Además, en Mongoose, usa $set por defecto, entonces esto debería ser equivalente:

return scores.updateQ({
    partId: partId,
    activityId: activityId,
    $unset: { topicType: '', topicId: '', courseId: ''}
},
{ strict: false });

EDITAR:

Mi suposición es que scores es un documento (una instancia del Modelo):

var schema = new Schema({});
var Scores = mongoose.model('Scores', schema);
var scores = new Scores({});

Ambos Scores.update y scores.update existen, pero la sintaxis es diferente, lo que puede ser lo que está causando su error. Aquí está la diferencia:

// Generic update
Scores.update({ _id: id }, { prop: 'value' }, callback);

// Designed to update scores specifically
scores.update({ prop: 'value' }, callback);

NOTA:

Si estas suposiciones no son correctas, incluye más contexto en tu respuesta, por ejemplo, cómo llegaste allí.