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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA基础之放弃使用Random

随机是日常生活中经常遇到的非常有趣的东西,比如说抛硬币,他的不可预知性总是让我们特别着迷,在拿不定主意时,有些人就喜欢用抛硬币的方式来帮助我们做决定。体育领域也喜欢用喜欢用抛硬币的方式来猜先。随机数功能是Java非常非常…

14个前端开发者应该知道的实用网站

在本文中,我将分享一些非常有用的网站合集,这些网站可以在你的日常工作中极大地帮助你。这些网站已经成为我各种任务的首选资源,节省了我的时间,提高了工作效率 文档自动化 Documatic 是一款专为开发人员设计的非常高效的搜索引擎…

Pytorch深度学习-----现有网络模型的使用及修改(VGG16模型)

系列文章目录 PyTorch深度学习——Anaconda和PyTorch安装 Pytorch深度学习-----数据模块Dataset类 Pytorch深度学习------TensorBoard的使用 Pytorch深度学习------Torchvision中Transforms的使用(ToTensor,Normalize,Resize ,Co…

STM32 CubeMX USB_MSC(存储设备U盘)

STM32 CubeMX STM32 CubeMX USB_MSC(存储设备U盘) STM32 CubeMX前言 《使用内部Flash》——U盘一、STM32 CubeMX 设置USB时钟设置USB使能UBS功能选择FATFS功能 二、代码部分修改代码"usbd_storage_if.c"修改代码"user_diskio.c"main函数初始化插…

每天一道leetcode:剑指 Offer 27. 二叉树的镜像(适合初学者递归树)

今日份题目: 请完成一个函数,输入一个二叉树,该函数输出它的镜像。 例如输入: 4 / \ 2 7 / \ / \ 1 3 6 9 镜像输出: 4 / \ 7 2 / \ / \ 9 6 3 1 示例 输入:root [4,2,7…

c基础扫雷

和三子棋一样,主函数先设计游戏菜单界面,这里就不做展示了。 初始化棋盘 初级扫雷大小为9*9的棋盘,但排雷是周围一圈进行排雷(8格),而边界可能会越界。数组扩大了一圈,行和列都加了2,所以我们用一个11*11的数组来初始化…

数据结构—树和二叉树

5.树和二叉树 5.1树和二叉树的定义 树形结构(非线性结构):结点之间有分支,具有层次关系。 5.1.1树的定义 树(Tree)是n(n≥0)个结点的有限集。 若n0,称为空树&#x…

Vue2嵌入HTML页面空白、互相传参、延迟加载等问题解决方案

一、需求分析 最近做的一个用H5加原生开发的html项目,现需要集成到Vue2.0项目里面来。遇到的相关问题做个记录和总结,以便能帮到大家避免踩坑。 二、问题记录 1、页面空白问题 将html页面通过iframe的方式嵌入进来之后,发现页面是空白的&am…

面试热题(倒数第k个结点)

输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。 例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表…

opencv动态目标检测

文章目录 前言一、效果展示二、实现方法构造形态学操作所需的核:创建背景减除模型:形态学操作:轮廓检测: 三、代码python代码C代码 总结参考文档 前言 很久没更新文章了,这次因为工作场景需要检测动态目标,特此记录一下。 一、效果展示 二、实现方法 基…

图的深度优先遍历和广度优先遍历

目录 图的创建和常用方法 深度优先遍历&#xff08;Depth First Search&#xff09; 广度优先遍历&#xff08;Broad First Search&#xff09; 图的创建和常用方法 //无向图 public class Graph {//顶点集合private ArrayList<String> vertexList;//存储对应的邻接…

JVM工作的总体机制概述

JDK、JRE、JVM关系回顾 JVM&#xff1a;Java Virtual Machine&#xff0c;翻译过来是Java虚拟机JRE&#xff1a;Java Runtime Environment&#xff0c;翻译过来是Java运行时环境 JREJVMJava程序运行时所需要的类库JDK&#xff1a;Java Development Kits&#xff0c;翻译过来是…

进程 的初识

程序和进程有什么区别 程序是静态的概念&#xff0c;gcc xxx.c -o pro 磁盘中生成的文件&#xff0c;叫做程序。进程是程序的一次运行活动&#xff0c;通俗点的意思就是程序跑起来了&#xff0c;系统中就多了一个进程。 如何查看系统中有哪些进程 使用 ps 指令&#xff08;完整…

解决vue3+echarts关于无法获取dom宽度和高度的问题

解决vue3echarts关于无法获取dom宽度和高度的问题 近期写vue3项目&#xff0c;很多地方都用到了echarts&#xff0c;刚开始写的时候&#xff0c;发现图一直出不来&#xff0c;报错/报警内容一般有两项&#xff1a; Uncaught (in promise) Error: Initialize failed: invalid …

恒盛策略:欧洲能源危机又来?天然气价格飙升,受益板块曝光

储能板块有望获益。 今日早盘煤炭、交通运输、石油石化等板块涨幅均超1%&#xff0c;其中煤炭板块涨1.37%位居第一位。音讯面上&#xff0c;欧佩克重申减产战略&#xff0c;世界原油价格升至3个月来高位。此外&#xff0c;隔夜欧洲天然气期货跳涨40%&#xff0c;创2022年3月以来…

7.6 通俗易懂解读残差网络ResNet 手撕ResNet

一.举例通俗解释ResNet思想 假设你正在学习如何骑自行车&#xff0c;并且想要骑到一个遥远的目的地。你可以选择直接骑到目的地&#xff0c;也可以选择在途中设置几个“中转站”&#xff0c;每个中转站都会告诉你如何朝着目的地前进。 在传统的神经网络中&#xff0c;就好比只…

如何设置文字颜色和背景颜色?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 设置文字颜色&#xff08;color属性&#xff09;⭐ 设置背景颜色&#xff08;background-color属性&#xff09;⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你…

关于丢失安卓秘钥的撞sha-1值的办法

实验得知&#xff0c;安卓sha-1和keytool生成秘钥签名文件的时间有关。 前提条件是&#xff0c;开发者必须知道生成秘钥的所有细节参数 以下是撞文件代码&#xff08;重复生成&#xff09; import time import osidx 0while True:cmdkeytool -keyalg RSA -genkeypair -alia…

机器学习实战2决策树算法

文章目录 决策树算法核心是要解决两个的关键问题sklearn中的决策树模型sklearn建模步骤分类树Criterionrandom_state && splitter剪枝参数max_depthmin_samples_leaf&&min_samples_splitmax_features&&min_impurity_decrease确认最优剪枝参数目标权重参…

【LangChain学习】基于PDF文档构建问答知识库(三)实战整合 LangChain、OpenAI、FAISS等

接下来&#xff0c;我们开始在web框架上整合 LangChain、OpenAI、FAISS等。 一、PDF库 因为项目是基于PDF文档的&#xff0c;所以需要一些操作PDF的库&#xff0c;我们这边使用的是PyPDF2 from PyPDF2 import PdfReader# 获取pdf文件内容 def get_pdf_text(pdf):text "…