MongoDB 更新文档

MongoDB的update()方法用于更新现有文档,支持设置多个参数如upsert和multi。save()方法则会根据_id是否存在进行更新或插入操作。在示例中,update()演示了如何更改name字段,而save()展示了替换文档数据的过程。
摘要由CSDN通过智能技术生成

MongoDB 使用 update() 和 save() 方法来更新集合中的文档。


update() 方法

update() 方法用于更新已存在的文档。语法格式如下:

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

参数说明:

  • query : update的查询条件,类似sql update查询内where后面的。
  • update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
  • upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
  • multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
  • writeConcern :可选,抛出异常的级别。

实例

往集合 test中插入如下数据:

db.test.insert({
    "id" : 666,
    "name" : "tous",
    "age" : 22.0
})

通过 update() 方法来更新name:

db.test.update({'name':'tous'},{$set:{'name':'tous new'}})
查询结果:

 

可以看到name由原来的 "tous" 更新为了 "tous new"。

以上语句只会修改第一条发现的文档,如果你要修改多条相同的文档,则需要设置 multi 参数为 true。

db.test.update({'name':'tous'},{$set:{'name':'tous new'}},{multi:true})

save() 方法

save() 方法通过传入的文档来替换已有文档,_id 主键存在就更新,不存在就插入。语法格式如下:

db.collection.save(
   <document>,
   {
     writeConcern: <document>
   }
)

参数说明:

  • document : 文档数据。
  • writeConcern :可选,抛出异常的级别。

实例

以下实例中我们替换了 _id 为 63e5eaaae7a700a1df67ee52的文档数据:

db.test.save({
    "_id" : ObjectId("63e5eaaae7a700a1df67ee52"),
    "id" : 666.0,
    "name" : "tous new save",
    "age" : 25.0,
    "address":"中国"
})

结果:

 

替换成功后,我们可以通过 find() 命令来查看替换后的数据


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农小石头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值