Node.js-MongoDB操作-文档更新

9.文档的更新

(1)方法

        Db.collName.updateOne()

        Db.collName.updateMany()

        Db.collName.update()

        Db.collName.relpaceOne()

(2)语法

db.collName.update(
   ,
   ,
     {
        upsert: ,
        multi: ,
        writeConcern: 
     }
)

query : update的查询条件,类似sql update查询内where后面的。

update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sqlupdate查询内set后    面的

upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认    是false,不插入。

multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查   出来多条记录全部更新。

writeConcern :可选,用于控制写入安全的

(3)更新操作

     a.  $set 设置字段的值 用法 : { $set : { field : value } }

          $unset 删除字段 用法:{ $unset : { field : 1} }

   例子:

      db.users.updateOne({name:"zhang"},{$unset:{age:0}})//删除一个字段

Node.js-MongoDB操作-文档更新_第1张图片

   b.  $inc 字段增加 字段要求是数字 用法:{ $inc : { field : value } }

     例子:

        db.users.updateOne({name:"zhang"},{$inc:{age:10}})//age自动+10,自减-10即可

 Node.js-MongoDB操作-文档更新_第2张图片

c.  $push 给字段添加值,字段要求是数组 用法:{ $push : { field : value } }

例子:

      db.users.updateOne({name:"zhang"},{$push:{info:'hello'}})

d.  $pushAll 同pusth 一次可以追加多个值 { $pushAll : { field : value_array } }

例子:

      db.users.updateOne({name:"王"},{$pushAll:{info:[1,2,3,4,5]}}

e. $pop 删除数组内的一个值 用法:删除最后一个值:{ $pop : { field : 1 } }删除第一个值:{ $pop : { field : -1 } }

例子:

     db.users.updateOne({name:"王"},{$pop:{info:1}}

     $min 更改比键对应值小的记录:{ $min: { : } }

     $max 更改比键对应值大的记录:{ $max: { : } }

    $currentDate 更改时间类的值到当前时间:{$currentDate:{ "CreateAt" : true}}

(4)实例

// 修改一条
db.collName.updateOne({条件字段:"值"},{$set:{字段:"修改后的值"}});
//修改多条数据
db.users.updateMany({条件字段:"值"},{$set:{字段:"修改后的值"}});
//修改一条
db.users.update({条件字段:"值"},{$set:{字段:"修改后的值"}});
// 修改多条
db.users.update({条件字段:"值"},{$set:{字段:"修改后的值"}},{multi:true})
//存在就修改,不存在就添加
db.users.updateOne({条件字段:"值"},{$set:{字段:"修改后的值",字段:"修改后的值"}},{upsert:true});
//替换文档
db.users.replaceOne({条件字段:"值"},{字段:"修改后的值"});

 

你可能感兴趣的:(NodeJS)