官方文档:Mongoose的update()方法
Model.update(condition,doc,[options],[callback]);
参数condition:更新的条件,要求是一个对象。
参数doc:要更新的内容,要求是一个对象。
参数[options]:可选参数,要求也是一个对象。
参数[callback]:可选参数,要求是一个回调函数。
[options]有效值:
safe :(布尔型)安全模式(默认为架构中设置的值(true))
upsert :(boolean)如果不匹配,是否创建文档(false)
multi :(boolean)是否应该更新多个文档(false)
runValidators:如果为true,则在此命令上运行更新验证程序。更新验证器根据模型的模式验证更新操作。
setDefaultsOnInsert:如果这upsert是真的,如果创建了新文档,猫鼬将应用模型模式中指定的默认值。该选项仅适用于MongoDB> = 2.4,因为它依赖于MongoDB的$setOnInsert操作符。
strict:(布尔)覆盖strict此更新的选项
overwrite: (布尔)禁用只更新模式,允许您覆盖文档(false)
作用:该方法是根据condition这个条件去更新doc这个对象。
例子:
MyModel.update({ age: { $gt: 18 } }, { oldEnough: true }, fn);
//匹配年龄大于18岁的那条数据,更新它的oldEnough值为true
MyModel.update({ name: 'Tobi' }, { ferret: true }, { multi: true }, function (err, raw) {
if (err) return handleError(err);
console.log('The raw response from Mongo was ', raw);
});
//把name值为“Tobi”的那个文档中的数据的ferret值更新为true;{multi:true}表明是要更新多个文档,也就是更新所有匹配name值的文档中的ferret值。