MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoError operatore di primo livello sconosciuto:$set

Il problema è che stai usando la sintassi per il metodo di aggiornamento . Dovresti usare questo metodo sintassi, presupponendo che scores è un documento.

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

Inoltre, in Mongoose, usa $set per impostazione predefinita, quindi dovrebbe essere equivalente:

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

MODIFICA:

La mia ipotesi è che scores è un documento (un'istanza del Modello):

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

Entrambi Scores.update e scores.update esiste, ma la sintassi è diversa, il che potrebbe essere ciò che sta causando il tuo errore. Ecco la differenza:

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

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

NOTA:

Se queste ipotesi non sono corrette, includi più contesto nella tua risposta, ad esempio come ci sei arrivato.