整理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官网​

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/64353.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OpenCv.js(图像处理)学习历程

opencv.js官网 4.5.0文档 以下内容整理于opencv.js官网。 简介 OpenCV由Gary Bradski于1999年在英特尔创建。第一次发行是在2000年。OpenCV支持c、Python、Java等多种编程语言,支持Windows、Linux、Os X、Android、iOS等平台。基于CUDA和OpenCL的高速GPU操作接口也…

深度学习和OpenCV的对象检测(MobileNet SSD图像识别)

基于深度学习的对象检测时,我们主要分享以下三种主要的对象检测方法: Faster R-CNN(后期会来学习分享)你只看一次(YOLO,最新版本YOLO3,后期我们会分享)单发探测器(SSD,本节介绍,若你的电脑配置比较低,此方法比较适合R-CNN是使用深度学习进行物体检测的训练模型; 然而,…

【linux】安装pytorch3d

写在开头 不要看网上的博客安装,直接参考官方安装文档去安装。 坑 坑1:安装pytorch3d后torch.cuda用不了 使用下面的命令安装后 conda install pytorch3d会提示安装下面的包,注意pytorch和torchvision都是cpu版本的,这样就会…

参考RabbitMQ实现一个消息队列

文章目录 前言小小消息管家1.项目介绍2. 需求分析2.1 API2.2 消息应答2.3 网络通信协议设计 3. 开发环境4. 项目结构介绍4.1 配置信息 5. 项目演示 前言 消息队列的本质就是阻塞队列,它的最大用途就是用来实现生产者消费者模型,从而实现解耦合以及削峰填…

docker安装neo4j

参考文章: 1、Mac 本地以 docker 方式配置 neo4j_neo4j mac docker_Abandon_first的博客-CSDN博客 2、https://www.cnblogs.com/caoyusang/p/13610408.html 安装的时候,参考了以上文章。遇到了一些问题,记录下自己的安装过程: …

在centos7下通过docker 安装onlyoffice

因为需要调试网盘,所以今天安装一下centos7的onlyoffice 官方介绍如下: 为了方便,还是通过docker方式来安装onlyoffice了,这里我们采用社区版本了。 1、下载docker安装包 如下: docker pull onlyoffice/documentserv…

桌面端UI自动化测试如何让SplitButtonControl展开

原始SplitButtonControl图 从图中鼠标所指的控件属性为: ControlType(控件类型): SplitButtonControl ClassName(类名): SplitButton AutomationId(自动化ID): esri_geoprocessing_Pyt…

m3u8怎么变成本地视频?一个小妙招教你轻松搞定

m3u8视频是一种流媒体视频格式,它将整个视频分成多个小文件,每个小文件的长度通常为几秒钟。这些小文件存储在服务器上,并通过网络传输到观众的设备上。当观众观看视频时,视频播放器会按照正确的顺序下载和播放这些小文件&#xf…

【Hystrix技术指南】(4)故障切换的运作流程

[每日一句] 也许你度过了很糟糕的一天,但这并不代表你会因此度过糟糕的一生。 [背景介绍] 分布式系统的规模和复杂度不断增加,随着而来的是对分布式系统可用性的要求越来越高。在各种高可用设计模式中,【熔断、隔离、降级、限流】是经常被使…

uni-app离线打包高德地图导入android studio不能正常显示

本人使用的uni-app SDK版本:Android-SDK3.8.7.81902_20230704 1.导入以上文件,依赖已经自动添加了 2.确保这个正常引入 3.修改AndroidMainifest.xml,添加自己的密钥

flask------消息闪现 flash

1介绍 flask提供了一个非常有用的flash()函数,它可以用来“闪现”需要提示给用户的消息,比如当用户登录成功后显示“欢迎回来!”。在视图函数调用flash()函数,传入消息内容,flash()函数把消息存…

win10 2022unity设置中文

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言解决方法 前言 在Edit->preferences里找不到language选项。 解决方法 【1】打开下面地址 注意 :把{version}换成你当前安装的版本,比如说如果…

textarea 标签如何创建多行文本输入框?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ textarea 的写法⭐ 代码含义⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅!这个专栏是为那些对Web开发感兴趣、…

Harbor企业镜像仓库部署(本地)

简述: Docker 官方镜像仓库是用于管理公共镜像的地方,大家可以在上面找到想要的镜像,也可以把自己的镜像推送上去。但是有时候服务器无法访问互联网,或者不希望将自己的镜像放到互联网上,那么就需要用到 Docker Regis…

通过easyui实现动态控制表格字段显示、导出表格数据

前言 学过layui前端框架的都知道,layui默认帮我们实现了控制表格字段显示以及数据的导出功能。 1、控制表格字段显示 2、数据导出 3、导出为pdf:导出按钮的右边那个按钮就是打印pdf的 那么,easyui要怎么实现这些功能呢?这篇文章就…

深度学习中的优化算法

文章目录 前言一、优化和深度学习1.1 优化的目标1.2 深度学习中的优化挑战1.2.1 局部最小值1.2.2 鞍点1.2.3 梯度消失 二、梯度下降2.1 一维梯度下降2.1.1 学习率 2.2 多元梯度下降2.3 自适应方法2.3.1 牛顿法2.3.2 其他自适应方法 三、随机梯度下降3.1 随机梯度更新3.2 动态学…

了解Swarm 集群管理

Swarm 集群管理 简介 Docker Swarm 是 Docker 的集群管理工具。它将 Docker 主机池转变为单个虚拟 Docker 主机。 Docker Swarm 提供了标准的 Docker API,所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm 轻松地扩展到多个主机。 支持的工具包括但不限…

ubuntu服务器配置ftp服务

需求:配置ftp服务用于在windows电脑上直接浏览、下载、上传ubuntu服务器上的文件,用于文件共享,方便实用 效果:用户打开windows资源管理器后输入ftp://xxx.xxx.xxx.xxx (公网IP地址)后,即可浏览…

linux onlyOffice docker 离线部署

文章目录 前言1. 安装Docker容器2. 拉取镜像3. 验证 前言 docker 离线安装onlyoffice,如在线安装可直接跳过导出导入镜像步骤,拉取后直接运行。 1. 安装Docker容器 下载文件 wget https://download.docker.com/linux/static/stable/x86_64/docker-19…

在Linux中安装MySQL

在Linux中安装MySQL 检测当前系统中是否安装MySQL数据库 命令作用rpm -qa查询当前系统中安装的所有软件rpm -qa|grep mysql查询当前系统中安装的名称带mysql的软件rpm -qa | grep mariadb查询当前系统中安装的名称带mariadb的软件 RPM ( Red-Hat Package Manager )RPM软件包管理…