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

本文档详细介绍了在 Node.js 中使用 MongoDB 对文档进行更新的各种操作,包括 updateOne、updateMany、replaceOne 方法,以及 $set、$unset、$inc、$push、$pop 等更新操作符的用法。例如,如何设置字段值、删除字段、增加字段数值、向数组中添加元素以及删除数组元素等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

9.文档的更新

(1)方法

        Db.collName.updateOne()

        Db.collName.updateMany()

        Db.collName.update()

        Db.collName.relpaceOne()

(2)语法

db.collName.update(
   <query>,
   <update>,
     {
        upsert: <boolean>,
        multi: <boolean>,
        writeConcern: <document>
     }
)

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}})//删除一个字段

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

     例子:

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

 

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({条件字段:"值"},{字段:"修改后的值"});

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值