sql >> Databáze >  >> NoSQL >> MongoDB

MongoError neznámý operátor nejvyšší úrovně:$set

Problém je v tom, že používáte syntaxi pro špatnou metodu aktualizace . Měli byste používat tuto metodu syntaxe za předpokladu, že scores je dokument.

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

V Mongoose také používá $set ve výchozím nastavení, takže by to mělo být ekvivalentní:

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

EDIT:

Můj předpoklad je, že scores je dokument (instance modelu):

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

Oba Scores.update a scores.update existují, ale syntaxe je odlišná, což může být příčinou vaší chyby. Zde je rozdíl:

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

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

POZNÁMKA:

Pokud tyto předpoklady nejsou správné, zahrňte do své odpovědi více kontextu, například jak jste se k tomu dostali.




  1. Najděte součet polí uvnitř pole v MongoDB

  2. MongoError:nelze provádět dotazy na admin v atlasu

  3. Jak MongoDB vyhodnocuje více příkazů $or?

  4. Nelze vytvořit/otevřít soubor zámku:/data/mongod.lock errno:13 Oprávnění odepřeno