MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Operador de nível superior desconhecido MongoError:$set


O problema é que você está usando a sintaxe para o método de atualização incorreto . Você deve usar este método sintaxe, assumindo que scores é um documento.
return scores.updateQ({
    $set: { "partId": partId, "activityId": activityId},
    $unset: { topicType: '', topicId: '', courseId: ''}
},
{ strict: false });

Além disso, no Mongoose, ele usa $set por padrão, então isso deve ser equivalente:
return scores.updateQ({
    partId: partId,
    activityId: activityId,
    $unset: { topicType: '', topicId: '', courseId: ''}
},
{ strict: false });

EDITAR:

Minha suposição é que scores é um documento (uma instância do Model):
var schema = new Schema({});
var Scores = mongoose.model('Scores', schema);
var scores = new Scores({});

Ambos Scores.update e scores.update existe, mas a sintaxe é diferente, o que pode estar causando o erro. Aqui está a diferença:
// Generic update
Scores.update({ _id: id }, { prop: 'value' }, callback);

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

NOTA:

Se essas suposições não estiverem corretas, inclua mais contexto em sua resposta, por exemplo, como você chegou lá.