3.4.3 文档的更新

简介: MongoDB文档操作详解:涵盖update更新语法,支持覆盖、局部($set)、批量(multi)及数值增减($inc)修改;remove删除指定或全部数据;结合count统计、limit/skip分页及sort排序实现高效查询。

更新文档的语法:
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)}})
3.4.4 删除文档
删除文档的语法结构:
db.集合名称.remove(条件)
以下语句可以将数据全部删除,请慎用
db.comment.remove({})
如果删除_id=1的记录,输入以下语句
db.comment.remove({_id:"1"})
3.5 文档的分页查询
3.5.1 统计查询
统计查询使用count()方法,语法如下:
db.collection.count(query, options)
(1)统计所有记录数
统计comment集合的所有的记录数:
db.comment.count()
(2)按条件统计记录数
例如:统计userid为1003的记录条数
db.comment.count({userid:"1003"})
提示: 默认情况下 count() 方法返回符合条件的全部记录条数。
3.5.2 分页列表查询
可以使用limit()方法来读取指定数量的数据,使用skip()方法来跳过指定数量的数据。 基本语法如下所示:
db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)
如果你想返回指定条数的记录,可以在find方法后调用limit来返回结果(TopN),默认值20,例如:
db.comment.find().limit(3)
skip方法同样接受一个数字参数作为跳过的记录条数。(前N个不要),默认值是0
db.comment.find().skip(3)
分页查询:需求:每页2个,第二页开始:跳过前两条数据,接着值显示3和4条数据
//第一页
db.comment.find().skip(0).limit(2)
//第二页
db.comment.find().skip(2).limit(2)
//第三页
db.comment.find().skip(4).limit(2)
3.5.3 排序查询
sort() 方法对数据进行排序,sort() 方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于降序排列。
语法如下所示:
db.COLLECTION_NAME.find().sort({KEY:1})

db.集合名称.find().sort(排序方式)
例如:
对userid降序排列,并对访问量进行升序排列
db.comment.find().sort({userid:-1,likenum:1})

相关文章
|
4月前
|
存储 人工智能 测试技术
OpenClaw构建自我迭代AI助手笔记
假期花了3天深度体验OpenClaw,尝试构建可自我迭代的银行客户经理助手的场景,验证通用智能体框架的可用性。 重点只验证这个新形态带来的变化,暂未仔细核实每个测试场景的准确性。 体验感触:通用智能体的迭代优化,本质是在模型能力基础上,针对Context能力的强优化。
OpenClaw构建自我迭代AI助手笔记
|
存储 物联网 测试技术
改变LoRA的初始化方式,北大新方法PiSSA显著提升微调效果
【4月更文挑战第23天】北京大学团队提出的新方法PiSSA,基于SVD进行参数高效微调,降低计算成本。PiSSA通过聚焦低秩矩阵训练,实现与全参数微调相当甚至更好的性能,快于LoRA收敛且在五个基准测试中胜出。PiSSA继承LoRA的参数效率,初始化仅需几秒,适合快速适应不同下游任务。尽管有潜力,但其在更大模型和任务上的效果,以及与LoRA结合的可能优化,仍是未来研究课题。[链接](https://arxiv.org/pdf/2404.02948.pdf)
714 7
HBuilder报错文件查找失败:'./pages/info/info/info.vue' at main.js:3解决办法
HBuilder报错文件查找失败:'./pages/info/info/info.vue' at main.js:3解决办法
5787 0
|
8月前
|
人工智能 安全 搜索推荐
钉钉发布全球首个工作智能操作系统Agent OS,专为AI打造
AI钉钉1.1版本名为“木兰”,距离钉钉发布AI钉钉1.0版本“蕨”不到四个月。“蕨象征着破土,木兰是破土后的初生。”钉钉创始人、CEO陈航(花名:无招)说,“未来,钉钉上所有AI Agent都基于Agent OS搭建和运行,让AI直连物理世界。”
606 1
|
8月前
阿里云无影云电脑“核时”是什么?一看就懂系列
阿里云无影云电脑核时是衡量CPU资源使用的单位,等于CPU核心数×使用小时数。个人版按月提供40至640核时不等套餐,核时用完可购核时包。配置越高、耗核时越快,如40核时可支持4核8G用10小时或8核16G用5小时,当月有效,不可结转。
1623 6
|
8月前
|
弹性计算
阿里云服务器最便宜多少钱一年?38元一年,配置、价格及购买限制介绍
现在阿里云服务器最便宜多少钱一年?38元一年,配置、价格及购买限制介绍来了,亲身测试是38元一年,价格确实便宜,38元一年相当于3元1个月、一毛钱一天。这是一台轻量应用服务器,200M峰值带宽、2核2G、40G ESSD系统盘,不限流量。
|
9月前
|
存储 调度 KVM
深入浅出KVM虚拟化技术原理——Ansible安全基线配置(一)
本文深入解析KVM虚拟化核心机制,涵盖内核如何调度QEMU进程与KVM模块协同工作、CPU虚拟化扩展(VT-x/AMD-V)的硬件加速原理,以及存储池的管理与优势,助你全面掌握KVM底层运行逻辑。
682 11
|
8月前
|
存储 编解码 JSON
16 RPC 实战:剖析 gRPC 源码,动手实现一个完整的 RPC
本课通过剖析gRPC源码,实战实现完整RPC框架。从动态代理、序列化到HTTP/2协议,详解请求发送与接收流程,涵盖Stub生成、数据封装、Frame传输、Netty编解码等核心机制,助你掌握高性能RPC设计精髓。
|
8月前
|
存储 消息中间件 开发框架
8应用架构图
应用架构图是技术实现的蓝图,体现系统内外部应用间的调用与数据关系。基于业务架构,划分展现、业务、数据和基础层,明确技术选型与分层逻辑。单体架构四层分离,职责清晰;分布式架构体现SOA服务调用,突出内部集成与外部依赖。通过调用链路与边界标注,厘清系统定位,支撑产品演进。(238字)
|
8月前
|
数据采集 领域建模 数据库
领域模型图(数据架构/ER图)
通过四色原型法进行领域建模,提取数据架构核心要素:红色时标原型(MI)表征业务流程节点,绿色参与方-物品原型(PPT)构建实体,黄色角色原型(Role)明确参与主体,蓝色描述原型(DESC)定义属性。基于风控系统流程,逐步构建领域模型,最终提炼出ER图,清晰展现实体间一对一、一对多、多对多关系,实现从业务到数据模型的精准转化。(238字)

热门文章

最新文章