《MongoDB入门教程》第21篇 CRUD之删除文档

news/2025/1/11 3:52:01/

本文将会介绍如何利用 deleteOne() 和 deleteMany() 方法删除满足指定条件的文档。

deleteOne() 方法

deleteOne() 方法用于删除集合中的单个文档,语法如下:

db.collection.deleteOne(filter, option)

该方法包含两个参数:

  • filter 是一个必选参数,用于指定一个查询条件,满足条件的文档才会被删除。如果指定一个空文档({})作为查询条件,将会删除集合中的第一个文档。
  • option 是一个可选参数,用于指定删除选项,本文不涉及相关内容。

deleteOne() 方法返回一个结果文档,其中的 deleteCount 字段存储了被删除文档的数量。

deleteOne() 示例

本文将会使用以下示例文档:

db.products.insertMany([{ "_id" : 1, "name" : "xPhone", "price" : 799, "releaseDate": ISODate("2011-05-14"), "spec" : { "ram" : 4, "screen" : 6.5, "cpu" : 2.66 },"color":["white","black"],"storage":[64,128,256]},{ "_id" : 2, "name" : "xTablet", "price" : 899, "releaseDate": ISODate("2011-09-01") , "spec" : { "ram" : 16, "screen" : 9.5, "cpu" : 3.66 },"color":["white","black","purple"],"storage":[128,256,512]},{ "_id" : 3, "name" : "SmartTablet", "price" : 899, "releaseDate": ISODate("2015-01-14"), "spec" : { "ram" : 12, "screen" : 9.7, "cpu" : 3.66 },"color":["blue"],"storage":[16,64,128]},{ "_id" : 4, "name" : "SmartPad", "price" : 699, "releaseDate": ISODate("2020-05-14"),"spec" : { "ram" : 8, "screen" : 9.7, "cpu" : 1.66 },"color":["white","orange","gold","gray"],"storage":[128,256,1024]},{ "_id" : 5, "name" : "SmartPhone", "price" : 599,"releaseDate": ISODate("2022-09-14"), "spec" : { "ram" : 4, "screen" : 9.7, "cpu" : 1.66 },"color":["white","orange","gold","gray"],"storage":[128,256]}
])

示例一:删除单个文档

以下示例使用 deleteOne() 方法删除 products 集合中 _id 等于 1 的文档:

db.products.deleteOne({ _id: 1 })

查询返回的结果如下:

{ "acknowledged" : true, "deletedCount" : 1 }

其中,deleteCount 字段的值为 1,表示删除了一个文档。

示例二:删除第一个文档

以下查询使用 deleteOne() 方法删除 products 集合中的第一个文档:

db.products.deleteOne({})

返回结果如下:

{ "acknowledged" : true, "deletedCount" : 1 }

deleteMany() 方法

deleteMany() 方法用于删除满足条件的所有文档,语法如下:

db.collection.deleteMany(filter, option)

其中,

  • filter 是一个必选参数,用于指定一个查询条件,满足条件的文档才会被删除。如果指定一个空文档({})作为查询条件,将会删除集合中的全部文档。
  • option 是一个可选参数,用于指定删除选项,本文不涉及相关内容。

deleteMany() 示例

示例一:删除多个文档

以下示例使用 deleteMany() 方法删除 price 等于 899 的所有文档:

db.products.deleteMany({ price: 899 })

返回结果如下:

{ "acknowledged" : true, "deletedCount" : 2 }

deleteCount 字段表示删除了 2 个文档。

示例二:删除全部文档

以下示例使用 deleteMany() 方法删除了 products 集合中的全部文档:

db.products.deleteMany({})

返回结果如下:

{ acknowledged: true, deletedCount: 3 }

http://www.ppmy.cn/news/6959.html

相关文章

项目沟通怎么才能不像在吵架?

项目沟通并非吵架,看起来却总是剑拔弩张。有效沟通才能真正解决问题,笔者给出了一些实用的建议,从对象到场景,再到方法与技巧,应该在沟通中有针对性地注意这些问题。 沟通是个老话题,在项目管理中有专门讲沟…

Springboot 启用 ehcache缓存

目录首先,添加依赖创建ehcache.xml配置文件修改springboot配置文件,引入ehcache.xml配置文件启用EnableCaching注解实体类实现可序列化接口Serializable添加缓存注解Cacheable、CacheEvictCacheable缓存数据CacheEvict清除缓存其它设置java.io.tmpdir子目…

setContentView学习(一)

setContentView流程分两种情况,一种是继承自Activity的情况,另一种是继承自AppCompatActivity的情况,下面分别介绍。 先说继承自Activity的情况,源码为android-30 public class Activity extends ContextThemeWrapper {public void setContentView(Lay…

【Arduino串口数据保存到excel中常用三种方法】

【Arduino串口数据保存到excel中常用三种方法】 1. 前言2. 利用excel自带Data Streamer读取2.1 启用 Data Streamer 加载项2.2 刷写代码并将微控制器连接到你的电脑2.3 excel画图记录3. 采用插件ArduSpreadsheet读取3.1 安装ArduSpreadsheet3.2 Arduino 代码4. python代码解析4…

【2027. 转换字符串的最少操作次数】

来源:力扣(LeetCode) 描述: 给你一个字符串 s ,由 n 个字符组成,每个字符不是 X 就是 O 。 一次 操作 定义为从 s 中选出 三个连续字符 并将选中的每个字符都转换为 O 。注意,如果字符已经是…

智能车|直流电机、编码器与驱动器

智能车|直流电机、编码器与驱动器直流电机直流电机原理减速器编码器编码器简介编码器的工作原理四倍频采集编码器采集程序实现驱动器TB6612FNG 电机驱动器TB6612FNG 的主要参数引脚说明电机整体接线直流电机 直流电机(direct current machine)是指能将直…

基于Java( jsp+servlet+javabean)+SQL sever 2017实现(Web)高校选课管理系统【100010058】

一、需求分析 开发意义: 随着信息技术不断向深入发展,越来越多的学校开始着手信息化建设。其中学生选课、成绩信息化管理就是其中重要的一块内容。学生选课与成绩信息规模大、项目条数多、信息量庞大,传统的人工管理方式显然已经无法满足要求…

水文监测系统-水文监测站构成 设备 功能 特点介绍以及案例分享

平升电子水文监测系统实现对江河流域水位、降水量、流量、流速、水质、闸门开启度、墒情等数据的实时采集、报送和处理。为防汛抗旱减灾提供科学依据和有效信息共享,保障人民群众生命财产安全,满足水利和经济社会发展对水文服务的需求。 2022年1月&#…