sql >> Database >  >> NoSQL >> MongoDB

MongoError onbekende operator op het hoogste niveau:$set

Het probleem is dat je de syntaxis gebruikt voor de verkeerde bijwerkmethode . Je zou deze methode moeten gebruiken syntaxis, ervan uitgaande dat scores is een document.

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

In Mongoose gebruikt het ook $set standaard, dus dit zou equivalent moeten zijn:

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

BEWERKEN:

Mijn veronderstelling is dat scores is een document (een instantie van het Model):

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

Beide Scores.update en scores.update bestaan, maar de syntaxis is anders, wat de fout kan veroorzaken. Dit is het verschil:

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

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

OPMERKING:

Als deze aannames niet correct zijn, voeg dan meer context toe aan je antwoord, zoals hoe je daar kwam.




  1. Hoe toegang te krijgen tot MongoDB

  2. Retourdocument met max. subdocument

  3. Aggregatie beperken in gegroepeerde aggregatie

  4. Stuur:de toegang is geweigerd om het eigendom op te lossen omdat het geen eigen eigendom is van de ouder