例如我们需要新数据库中的state的状态为0,可以使用以下几种
update() updateMany() find() + save() updateOne() findOne() + save() findByIdAndUpdate() fingOneAndUpdate()
【update()】
第一个参数conditions为查询条件,第二个参数doc为需要修改的数据,第三个参数options为控制选项,第四个参数是回调函数
Model.update(conditions, doc, [options], [callback])
options有如下选项
safe (boolean): 默认为true。安全模式。 upsert (boolean): 默认为false。如果不存在则创建新记录。 multi (boolean): 默认为false。是否更新多个查询记录。 runValidators: 如果值为true,执行Validation验证。 setDefaultsOnInsert: 如果upsert选项为true,在新建时插入文档定义的默认值。 strict (boolean): 以strict模式进行更新。 overwrite (boolean): 默认为false。禁用update-only模式,允许覆盖记录。
现在使用update()方法查询age大于20的数据,并将其年龄更改为40岁
temp.update({age:{$gte:20}},{age:40},function(err,raw){ //{ n: 1, nModified: 1, ok: 1 } console.log(raw); })
如果要同时更新多个记录,需要设置options里的multi为true。下面将名字中有'a'字符的年龄设置为10岁
temp.update({name:/a/},{age: 10},{multi:true},function(err,raw){ //{ n: 2, nModified: 2, ok: 1 } console.log(raw); })
【updateMany()】
updateMany()与update()方法唯一的区别就是默认更新多个文档,即使设置{multi:false}也无法只更新第一个文档
Model.updateMany(conditions, doc, [options], [callback])
例如前端发送了6个ID,然后把这6个ID的state状态更改为0
发送的是一个数组,数组中包含了6个对象,每个对象的包含了数据的id
Info.updateMany( {_id}, {$set:{ state:0 }}).then(updata=>{ if(updata){ res.json({ status:0, result:updata }) }else{ res.json({ status:0, msg:'审核失败' }) } })
发表评论
侧栏公告
寄语
譬如朝露博客是一个分享前端知识的网站,联系方式11523518。
热评文章
标签列表
热门文章
友情链接