MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoError unbekannter Top-Level-Operator:$set

Das Problem ist, dass Sie die Syntax für die falsche Aktualisierungsmethode verwenden . Sie sollten diese Methode verwenden Syntax, unter der Annahme, dass scores ist ein Dokument.

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

In Mongoose wird außerdem $set verwendet standardmäßig, also sollte dies äquivalent sein:

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

BEARBEITEN:

Meine Vermutung ist, dass scores ist ein Dokument (eine Instanz des Modells):

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

Sowohl Scores.update und scores.update existieren, aber die Syntax ist anders, was möglicherweise Ihren Fehler verursacht. Hier ist der Unterschied:

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

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

HINWEIS:

Wenn diese Annahmen nicht richtig sind, fügen Sie Ihrer Antwort mehr Kontext hinzu, z. B. wie Sie dorthin gelangt sind.