整理mongodb文档:删
个人博客
整理mongodb文档:删
求关注,哪儿不足,求大佬们指出,哪儿写的不够通俗易懂跟清晰,也求指出
文章概叙
本文主要是介绍了删除数据的几个方法,主要还是在介绍deleteMany、deleteOne以及remove,对于findOneAndDelete这些比较经典的方法也大概的提一嘴。
数据准备
老规矩,准备了下面四条数据
{"string":"a","sort":1},
{"string":"B","sort":1},
{"string":"C","sort":1},
{"string":"d","sort":1}
插入到我们的collection中,然后就是最简单的查询,可以看到数据如下

插入成功,接下来一个一个试试下面的几个语法,实战来检验下。
deleteOne
Removes a single document from a collection.
没什么好说的。就是从集合中删除单个文档,最基础的语法如下
db.test.deleteOne({string:'d'})

ok,测试完毕,下一个。
deleteMany
Removes all documents that match the from a collection
意思就是:从一个集合中删除掉多个文档,测试的语法如下:
db.test.deleteMany({sort:1})

ok,测试完毕,下一个。
remove
与create相同,当我们不清楚删除的数量有多个或者只有一个的时候我们无法判断是要使用deleteOne还是deleteMany,此时就可以使用remove。
Removes documents from a collection.
意思就是从一个集合中删除文档。
需要注意的是,我们在5.0之前,使用remove的时候,用的语法是
db.test.remove({sort:1},true)
其中,第二个的true表示的是否只删除一条,但是这个是旧版的语法,且我们在使用的时候,会报下面的提示
'DeprecationWarning: Collection.remove() is deprecated.
Use deleteOne, deleteMany, findOneAndDelete, or bulkWrite.'
新版的语法变成了(v5.0之后)
db.test.remove({sort:1},{justOne:true})
但是请注意下上面的过期提醒,所以大概了解下人家用的意思就可以了
findOneAndDelete
这个语法更加简单,意思是找到并且删除第一个符合的条件,之所以将其拿出来,是因为他返回的数据是删除的那个对象,既
db.test.findOneAndDelete({string:"d"})

到此,对于最常用的,除了批量操作之外的删除,我想你已经会了。但是文章也不单单如此,因为我们还需要了解下其他的参数。
collation
collation是一个比较重要的参数,在上述的几个api中都有体现出来,实用性也较为强,所以这儿用一个例子作为模板讲解下这个参数。
对于collation的解释,我在之前的博客已经提及,这儿不再说了。
整理mongodb文档:collation
假设一个场景,现在有以下两条数据,分别如下
{string:'a'},
{string:'A'}
此时,两个数据都是a,只是一个是大写一个是小写,如果我们用
db.test.deleteMany({string:'a'})
那么删除的是一条’a’,而不是两条数据,这没什么问题,但是如果创建集合的时候,设置了大小写不敏感,就会出现将两条数据一起删除的情况,此时就需要在删除数据的时候,因此为了保险起见,我们会改用下面的写法
db.test.deleteMany({string:'a'},{collation:{locale:'simple'}})
同样的道理,如果我们删除数据的时候想要大小写不敏感,即删除’a’的同时又删除’A’.就可以
db.test.deleteMany({string:'a'},{collation:{locale:'zh',strength:2}}
)
本文资料来源:mongodb官网
相关文章:
整理mongodb文档:删
个人博客 整理mongodb文档:删 求关注,哪儿不足,求大佬们指出,哪儿写的不够通俗易懂跟清晰,也求指出 文章概叙 本文主要是介绍了删除数据的几个方法,主要还是在介绍deleteMany、deleteOne以及remove,对于…...
篇二十三:设计模式的综合实例:构建完整项目
篇二十三:"设计模式的综合实例:构建完整项目" 开始本篇文章之前先推荐一个好用的学习工具,AIRIght,借助于AI助手工具,学习事半功倍。欢迎访问:http://airight.fun/。 另外有2本不错的关于设计模…...
FFmpeg常见命令行(三):FFmpeg转码
前言 在Android音视频开发中,网上知识点过于零碎,自学起来难度非常大,不过音视频大牛Jhuster提出了《Android 音视频从入门到提高 - 任务列表》。本文是Android音视频任务列表的其中一个, 对应的要学习的内容是:如何使…...
合宙Air724UG LuatOS-Air script lib API--scanCode
Table of Contents scanCode scanCode.request(cbFnc, timeout) scanCode 模块功能:扫码. 支持二维码、条形码扫描 scanCode.request(cbFnc, timeout) 设置扫码请求 参数 名称 传入值类型 释义 cbFnc function 扫码返回或者超时未返回的回调函数,回调…...
2023年新手如何学剪辑视频 想学视频剪辑如何入门
随着短视频、vlog等媒体形式的兴起,视频剪辑已经成为了热门技能。甚至有人说,不会修图可以,但不能不会剪视频。实际上,随着各种智能软件的发展,视频剪辑已经变得越来越简单。接下来,一起来看看新手如何学剪…...
C++的auto究竟是何方神圣
C的auto究竟是何方神圣 前言🙌auto(C 11) 的使用细则auto是什么? auto声明的变量是在什么时期被编译器推导出来呢?为什么使用auto进行定义变量时,必须进行初始化? auto 的使用场景auto与指针和引…...
网络安全【黑客】面试题汇总
前言 一眨眼2023年已经过去一大半,不知道大家有没有找到心仪的工作。作为一个安全老鸟,工作这么多年,面试过很多人也出过很多面试题目,也在网上收集了各类关于渗透面试题目,里面有我对一些问题的见解,希望…...
docker菜谱大全
记录docker常用软件安装,感谢小马哥和杨师傅的投稿。😎😎😎 相关文档: DockerHub:https://hub.docker.com/Linux手册:https://linuxcool.com/Docker文档:https://docs.docker.com/Do…...
git: git checkout命令
git checkout 命令在Git中有不同的用法和功能,具体取决于您在命令后面提供的参数。以下是一些常见的用法: 1. 切换分支:您可以使用 git checkout <branch> 切换到指定的分支。例如,要切换到名为 "feature-branch"…...
以游戏编程的角度看待模拟时间的算法题——以PAT甲级1026 Table Tennis为例
对于需要模拟时间的算法题,可以将开始时间作为游戏的开始(如Unity的Start或UE的BeginPlay),每一秒的模拟作为游戏的画面更新(如Unity的Update或UE的Tick),结束时间可作为游戏的结束(…...
SNAT与DNAT原理
SNAT和DNAT (源地址转换和目标地址转换) SNAT:源地址转换。内网到外网转换的是源地址。 DNAT:目标地址转换:外网到内网转换的是目的地址 (把内部服务器的ip地址转换成一个所有人都可以访问的地址࿰…...
04-2_Qt 5.9 C++开发指南_SpinBox使用
文章目录 1. SpinBox简介2. SpinBox使用2.1 可视化UI设计2.2 widget.h2.3 widget.cpp 1. SpinBox简介 QSpinBox 用于整数的显示和输入,一般显示十进制数,也可以显示二进制、十六进制的数,而且可以在显示框中增加前缀或后缀。 QDoubleSpinBox…...
接口安全防护方案
文章目录 1.认证与授权机制2.参数校验3.接口加密4.防止暴力破解5.安全头设置6.日志监控 1.认证与授权机制 使用令牌(Token)、OAuth等认证方式,确保只有合法用户可以访问接口。授权机制可以防止未经授权的用户访问敏感接口。 示例:…...
机器学习复习题
1 单选题 ID3算法、C4.5算法、CART算法都是( )研究方向的算法。 A . 决策树 B. 随机森林 C. 人工神经网络 D. 贝叶斯学习 参考答案:A ( )作为机器学习重要算法之一,是一种利用多个树分类器进行分类和预测…...
无线液位传感器—简介
近年来,随着无线传感网络技术的愈发成熟和稳定,无线传感器因其安装、维护方便,不用布线、节约成本,监测方便,使用灵活,可适用于多种工业领域等优点,正在逐步替代部分传统有线传感器,…...
通讯协议034——全网独有的OPC HDA知识一之聚合(三)时间加权平均
本文简单介绍OPC HDA规范的基本概念,更多通信资源请登录网信智汇(wangxinzhihui.com)。 本节旨在详细说明HDA聚合的要求和性能。其目的是使HDA聚合标准化,以便HDA客户端能够可靠地预测聚合计算的结果并理解其含义。如果用户需要聚合中的自定义功能&…...
Android 13 Hotseat定制化修改——003 hotseat图标大小修改
目录 一.背景 二.未修改前效果 三.修改后效果 一.背景 由于需求是需要自定义修改Hotseat,所以此篇文章是记录如何自定义修改hotseat的,应该可以覆盖大部分场景,修改点有修改hotseat布局方向,hotseat图标数量,hotseat图标大小,hotseat布局位置,hotseat图标禁止形成文件…...
21、springboot的宽松绑定及属性处理类的构造注入
springboot的宽松绑定及属性处理类的构造注入 ★ 如何使用属性处理类所读取的属性 属性处理类最终变成了Spring容器中的一个Bean组件,因此接下来Spring即可将该Bean组件注入任意其他组件。 这种做法的好处是:可以将大量的配置信息封装一个对象——所以…...
nginx负载均衡(反向代理)
nginx负载均衡 负载均衡:由反向代理来实现。 nginx的七层代理和四层代理: 七层是最常用的反向代理方式,只能配置在nginx配置文件的http模块当中,而且配置方法名称:upstream模块,不能写在server模块中&#…...
AWS上传私有windows server2019镜像64位
一.制作自己的镜像 我使用的是esxi,建立一个windows虚拟机,开启。 根据aws官方文档,虚拟机里的系统重要需要注意以下几点: 1.只有一张网卡,ip获取配置成dhcp。 2.关闭系统防火墙。 3.开启windows rdp 远程功能。 …...
手把手排查 DeepSpeed CPUAdam 报错:从 AttributeError 到成功编译 Op 的完整日志分析
深度解析DeepSpeed CPUAdam编译报错:从日志分析到精准修复 当你第一次看到AttributeError: DeepSpeedCPUAdam object has no attribute ds_opt_adam这个错误时,可能会感到困惑。这个错误背后隐藏着DeepSpeed框架中CPUAdam优化器与CUDA环境之间复杂的交互…...
用Python手把手实现ALNS算法:从TSP路径规划到代码实战(附完整源码)
用Python手把手实现ALNS算法:从TSP路径规划到代码实战 旅行商问题(TSP)是组合优化中最经典的NP难问题之一,如何在合理时间内找到近似最优解一直是算法研究的重点。自适应大邻域搜索(ALNS)作为LNS算法的增强…...
Phi-3-mini-4k-instruct-gguf入门必看:轻量模型与Llama3/Qwen对比——适用边界与选型建议
Phi-3-mini-4k-instruct-gguf入门必看:轻量模型与Llama3/Qwen对比——适用边界与选型建议 1. 认识Phi-3-mini-4k-instruct-gguf Phi-3-mini-4k-instruct-gguf是微软Phi-3系列中的轻量级文本生成模型GGUF版本。这个模型特别适合处理问答、文本改写、摘要整理和简短…...
7步突破Cursor Pro限制:多语言环境下的AI编程工具全功能解锁指南
7步突破Cursor Pro限制:多语言环境下的AI编程工具全功能解锁指南 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reache…...
2025届必备的十大降重复率工具实测分析
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 用于学术论文、科研报告以及各类文档,提供查重与改写服务的在线工具是降重网站。…...
手把手教你用Strongswan App通过IKEv2 EAP认证连接Freeradius(附调试技巧)
移动端安全连接实战:Strongswan与Freeradius的IKEv2 EAP认证深度配置指南 在移动办公日益普及的今天,企业级VPN解决方案需要兼顾安全性与易用性。Strongswan作为开源的IPsec实现,配合Freeradius进行EAP认证,能够为Android设备提供…...
基于氢储能的热电联供型微电网优化调度方法附Matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…...
Ubuntu20.04下QGroundControl开发环境搭建全攻略(含常见错误解决方案)
Ubuntu 20.04下QGroundControl开发环境搭建全攻略(含常见错误解决方案) 在无人机和机器人开发领域,QGroundControl作为一款开源的飞行控制地面站软件,已经成为开发者不可或缺的工具。本文将带你从零开始,在Ubuntu 20.0…...
QMK Toolbox终极指南:5步完成机械键盘固件刷写与自定义
QMK Toolbox终极指南:5步完成机械键盘固件刷写与自定义 【免费下载链接】qmk_toolbox A Toolbox companion for QMK Firmware 项目地址: https://gitcode.com/gh_mirrors/qm/qmk_toolbox QMK Toolbox是一款专为机械键盘爱好者设计的开源固件刷写工具…...
WarcraftHelper解决方案:魔兽争霸3跨系统优化指南
WarcraftHelper解决方案:魔兽争霸3跨系统优化指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 魔兽争霸3作为经典的即时战略游戏&#…...
