MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoError неизвестен оператор от първо ниво:$set

Проблемът е, че използвате синтаксиса за грешен метод за актуализиране . Трябва да използвате този метод синтаксис, като приемем, че scores е документ.

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

Освен това в Mongoose се използва $set по подразбиране, така че това трябва да е еквивалентно:

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

РЕДАКТИРАНЕ:

Моето предположение е, че scores е документ (екземпляр на модела):

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

И двете Scores.update и scores.update съществуват, но синтаксисът е различен, което може да е причината за вашата грешка. Ето разликата:

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

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

ЗАБЕЛЕЖКА:

Ако тези предположения не са верни, включете повече контекст в отговора си, като например как сте стигнали до там.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. получаване на грешка ReplicaSetNoPrimary и MongoServerSelectionError при свързване на MongoDB с nodejs

  2. Въпрос на Mongo Query $gt,$lt

  3. Как да направите селективно възстановяване на Mongo?

  4. намерете в MongoCollection<Document>

  5. mongoose актуализира масива или добавя към масива