当我这样做时:
return scores.updateQ({_id:score._id},
{
$set:{"partId":partId,"activityId":activityId},
$unset:{topicType:'',topicId:'',courseId:''}
},
{strict:false})
在哪里partId
和activityId
变量在其他地方定义,
我懂了
{ name: 'MongoError',
message: 'unknown top level operator: $set',
index: 0,
code: 2,
errmsg: 'unknown top level operator: $set' }
这个答案说
““未知顶级操作员”消息表示该操作员必须出现在它所适用的字段之后。”
但是文档说你可以按照我的方式去做
所以也许还有其他问题吗?
问题是您对错误的update方法使用了语法。假设这是一个文档,则应使用此方法的语法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);
笔记:
如果这些假设不正确,请在答案中包括更多上下文,例如您到达那里的方式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句