文档的更新操作 | 学习笔记

简介: 快速学习 文档的更新操作

开发者学堂课程【MongoDB精讲课程(上):文档的更新操作学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/726/detail/12957


文档的更新操作


内容介绍:

一,更新文档的语法

二,覆盖的修改

三,局部修改

四,批量的修改

五,列值增长的修改

 

一,更新文档的语法

db .collection.update(queryupdateoptions)

/ /

db.collection.update(

<query> ,

<update>,

{

upsert: <boolean> ,

multi: <boo1ean>,

writeConcern: <document> ,

collation: <document>,

arrayFilters: [  <filter document1>, ... ],

hint:  <document |string>         // Available starting in MongoDB 4.2

}

以上为文档更新的语法,语法格式为 db.collection 名称+执行方法(例如本节课执行的就是方法就是更新: update ), update 后面会跟有三个参数:

query:查询条件、update :更新条件、option :附带选项。

 

二,覆盖的修改

db.comment.find 来查询修改之前 comment 表里的数据为:

image.png

如果我们想修改 _id 1的记录,点赞量为1001,输入以下语句:

db.comment. update({_id: "1"},{likenum : NumberInt(1001)})

执行成功后会显示:

WriteResult({nMatched : 1, nUpserted : 0, nModifide : 1 })

nModifide 说明我们成功修改了一条数据。

执行结果:

image.png

我们会发现,这条文档除了 likenum 字段其它字段都不见了,即之前的文档数据被 likenum : NumberInt(1001) 替换掉了。这就叫做覆盖的修改。

 

三,局部修改

为了解决覆盖修改的问题,我们需要使用修改器 $set 来实现,

命令如下:

如果我们想修改_id 2的记录,点赞量为1001,输入以下语句:

db.comment.update({_id:"2"},{$set:{likenum :NumberInt(1001)}})

执行结果如下:

image.png

这时我们发现我们只更改了点赞量的字段,其他数据没有变化,着就叫做局部修改。

 

四,批量的修改

如果我们想更新所有用户为1003的用户的昵称为张三。

需要输入指令:

db . comment.update({userid: "1003"},{$set:{nickname: "张三"}}

这时我们会发现执行后显示:

WriteResult({“nMatched : 1, nUpserted : 0, nModifide : 1 })

执行结果:

image.png

也就是说刚才的指令默认只修改第一条指令

如果想要两条数据,就需要在刚才执行的指令里加上第三个参数 option,在这里给 multi 配置为 true

修改后的指令:

db . comment.update({userid: "1003"},{$set:{nickname: "李四""}},{multi:true})

这里我们把用户名为1003的都修改为李四。

执行后会显示:

WriteResult({nMatched : 2, nUpserted : 0, nModifide : 2 })

即修改了两条数据。

执行结果:

image.png

这就是批量修改。

 

五,列值增长的修改

如果我们想实现对某列值在原有值的基础上进行增加或减少,可以使用$inc 运算符来实现。

需求:3号数据的点赞数,每点一次递增1

输入以下指令:

db.comment.update({_id:"3"},{$inc:{likenum: NumberInt(1)}})

执行结果:

image.png

这时我们发现,执行前点赞数为666,执行后为667,这就是列值增长的修改。

相关文章
|
7月前
|
存储 弹性计算 运维
自动文档生成
【4月更文挑战第30天】
61 0
|
7月前
|
编解码
亚丁号自动阅读第一次更新
亚丁号自动阅读第一次更新
49 1
|
Web App开发 缓存 iOS开发
CleanMyMacX4.12.2有哪些新的功能更新
任何一部电子设备在使用多年之后都会出现性能下降的问题,苹果的Mac计算机自然也不例外。当你发现Mac运行缓慢,因为有太多文件或缓存垃圾将Mac的运行速度拖了下来。 要想提高生活和工作效率,必须对Mac进行优化,提升一下Mac 的使用性能。那么以下三种提升Mac使用性能的方法对你的帮助将会是巨大的。
128 0
|
NoSQL MongoDB 开发者
文档的删除操作 | 学习笔记
快速学习 文档的删除操作
121 0
文档的删除操作 | 学习笔记
|
SQL JSON NoSQL
文档的更多查询 | 学习笔记
快速学习 文档的更多查询
118 0
文档的更多查询 | 学习笔记
|
API 数据库 索引
关于文档的API操作( 更新文档和 批量插入)
关于文档的API操作( 更新文档和 批量插入)
|
分布式计算 Hadoop 开发者
更新|学习笔记
快速学习更新。
|
分布式计算 Hadoop 开发者
更新 | 学习笔记
快速学习更新
|
NoSQL 关系型数据库 MongoDB
更新函数|学习笔记
快速学习更新函数