文档的更新

简介: MongoDB update语法用于更新文档,支持覆盖修改、局部修改及批量操作。使用$set可避免字段丢失,multi参数实现批量更新,$inc用于数值增减,如点赞数递增。

更新文档的语法:
db.collection.update(query, update, options)
//或
db.collection.update(

,

,
{
upsert: ,
multi: ,
writeConcern: ,
collation: ,
arrayFilters: [ , ... ],
hint: // Available starting in MongoDB 4.2
}
)
(1)覆盖的修改
如果我们想修改_id为1的记录,点赞量为1001,输入以下语句:
db.comment.update({_id:"1"},{likenum:NumberInt(1001)})
执行后,我们会发现,这条文档除了likenum字段其它字段都不见了,
(2)局部修改
为了解决这个问题,我们需要使用修改器$set来实现,命令如下,我们想修改_id为2的记录,浏览量为889,输入以下语句:
db.comment.update({_id:"2"},{$set:{likenum:NumberInt(889)}})
(3)批量的修改
更新所有用户为 1003 的用户的昵称为凯撒大帝 。提示:如果不加后面的参数,则只更新符合条件的第一条记录
//默认只修改第一条数据
db.comment.update({userid:"1003"},{$set:{nickname:"凯撒2"}})
//修改所有符合条件的数据
db.comment.update({userid:"1003"},{$set:{nickname:"凯撒大帝"}},{multi:true})
(3)列值增长的修改
如果我们想实现对某列值在原有值的基础上进行增加或减少,可以使用 $inc 运算符来实现。
需求:对3号数据的点赞数,每次递增1
db.comment.update({_id:"3"},{$inc:{likenum:NumberInt(1)}})

相关文章
|
存储 网络协议 Unix
网络基础:socket套接字
网络基础:socket套接字
741 1
|
8月前
|
SQL 数据库 数据安全/隐私保护
用于绕过身份验证的 SQL 注入示例
该文介绍了SQL注入如何绕过登录验证:攻击者通过在登录表单输入恶意构造的用户名(如`admin')--`)和密码,利用SQL语句注释符`--`使数据库忽略密码校验,从而非法获取管理员权限。此攻击无需知晓真实密码,凸显了输入验证的重要性。
|
安全 物联网 数据建模
SSL证书:网络安全的重要基石
在数字化时代,数据安全与隐私保护至关重要。SSL证书作为一种关键网络安全技术,通过加密和认证确保通信安全。本文从定义、工作原理、类型、应用场景到选择与维护全面解析SSL证书。其类型包括DV、OV和EV,广泛应用于电商、金融、政府及物联网等领域。选择时需明确需求、信赖CA,并关注成本与服务。及时更新证书,保障持续安全。SSL证书是守护网络安全的重要工具,对提升信任度和满足合规性意义重大。
|
运维 小程序 API
STM32实战项目—WIFI远程开关灯
本文介绍了如何利用正点原子ESP8266和STM32F103C8T6连接腾讯云,利用舵机实现远程开关灯。给出了详细的腾讯云配置和调试步骤,给出了部分程序设计。
868 1
STM32实战项目—WIFI远程开关灯
|
存储 算法 安全
详细解读CA认证原理以及实现(上)
详细解读CA认证原理以及实现(上)
773 1
|
算法 安全 调度
操作系统(8)---进程的同步与互斥以及信号量机制(万字总结~)(1)
操作系统(8)---进程的同步与互斥以及信号量机制(万字总结~)
1025 0
操作系统(8)---进程的同步与互斥以及信号量机制(万字总结~)(1)
|
SQL 关系型数据库 MySQL
MySQL:简单记录一下Waiting for commit lock
Waiting for global read lock:由于flush table with read lock调用函数lock_global_read_lock导致DML操作堵塞。 Waiting for commit lock :由于flush table with read lock 调...
2473 0
|
Linux C语言 C++
一文搞懂操作系统进程同步的几种机制(含现实案列)
一文搞懂操作系统进程同步的几种机制(含现实案列)

热门文章

最新文章