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

MongoError ukendt topniveauoperatør:$set

Problemet er, at du bruger syntaksen til den forkerte opdateringsmetode . Du bør bruge denne metodes syntaks, forudsat at scores er et dokument.

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

Også i Mongoose bruger den $set som standard, så dette bør være tilsvarende:

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

EDIT:

Min antagelse er, at scores er et dokument (en forekomst af modellen):

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

Begge Scores.update og scores.update eksisterer, men syntaksen er anderledes, hvilket kan være årsagen til din fejl. Her er forskellen:

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

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

BEMÆRK:

Hvis disse antagelser ikke er korrekte, skal du inkludere mere kontekst i dit svar, f.eks. hvordan du kom dertil.




  1. Hvorfor er MongoDB så hurtigt

  2. Mongo-forespørgsel Distinct with Sum virker ikke

  3. MongoDB Indexing vs Array Implementation til vores specifikke applikation

  4. MongoDb hastighedsnedsættelse