《MongoDB》Mongo Shell中的基本操作-删除操作一览

  • 一、简介
  • 二、内容概述
  • 三、删除文档
  • 3.1 db.collection.remove()
  • 3.2 配置参数
  • justone 仅删除一篇
  • 四、删除集合
  • 4.1 db.collection.drop()
  • 五、小结


一、简介

本篇记录备份的是Mongo DB的一些基础知识,包括文档长什么样子,Mongo Shell中的CRUD这四种基本操作,什么是CRUD?C(Creadt、创建)R(Read、读取)U(Update、更新)D(Delete、删除),人话就是增、删、改、查等等;
注意,本文中的示例命令都是基于Mongo Shell的,并不是直接运行在类似于node代码中的~

二、内容概述

本文主要记录分享了在Mongo Shell中如果对MongoDB中的数据删除操作;

MongoDB如何多条件删除 mongodb批量删除集合_remove

三、删除文档

当通过insert()方法将文档在MongoDB中创建之后,肯定是需要对文档进行删除的,比如统计数据的删除,用户地址的变更,甚至是用户的注销;

3.1 db.collection.remove()

删除文档,具体模版如下:

db.<collection>.remove(<query>,<option>)
  • query: 代表删除文档时筛选文档的条件,简单的说就是删除某个文档的前提是你得找到这个文档;
  • option: 代表声明了一些删除操作的参数;

这个模版和find命令也好,还是update命令也好,用法非常接近,和以上方的这个模版为例,我们要删除一个name值是oliver的数据,那么应该如下编写

db.test.remove({name:"oliver"})

简单说明:在test这个集合中找到了name值是oliver的数据,并且将这条数据进行了 删除,删除过后,在test这个集合中将没有name值是oliver的数据了,值得注意的是,remove命令会删除所有符合筛选条件的文档,这一点和update完全不同,update在不使用配置项进行配置的时候仅仅是删除一条;
如果想 删除集合内所有的文档,那么也很简单,不传空参数即可,如下:

db.test.remove({})

通过空参数才筛选出所有的文档,再将这些文档进行删除,删除成功后集合清空,但 集合本身还是存在的
那么问题来了,如果只想删除一篇文档该怎么办,除了更加精准的找到那唯一的、指定的一篇文档进行删除外,还可以使用参数option来实现

3.2 配置参数

justone 仅删除一篇

举个例子,删除一篇余额小于100的银行账户文档:

db.test.remove({blance:{$lt:100}},{justOne:true});

这样,即是是通过筛选条件{blance:{$lt:100}}筛选出的文档数量是 大于1 的,那么通过justOne这个参数,最终删除的文档数量也只会有1篇,而不是多篇;

四、删除集合

如果删除的不仅仅是文档,而是整个集合,那么命令就不再是remove()命令了,而是drop()命令

4.1 db.collection.drop()

删除集合,具体模版如下:

db.<collection>.drop({writeConcern:<document>})

writeConcern: 安全写级别,简单的说就是删除这个操作安全写级别越高,删除的速度越慢,因为在执行的过程中它要确保删除成功了;

通过drop命令,它可以 删除整个集合collection,包括这个集合中所有的文档,所有的集合索引等等;命令执行后它会返回一个布尔值,如果值为true,那么就代表删除成功,如下:

MongoDB如何多条件删除 mongodb批量删除集合_mongodb_02

五、小结

本文主要记录了在常规数据库操作中文档删除的一些用法~删除的命令也非常简单,一共有两种,分别是:

  • db.collection.update(),删除集合中的文档,本身是批量删除,如果想实现单个删除那么可以通过配置项justone实现;
  • db.collection.drop(),它可以删除集合本身,当删除集合本身的时候会删除集合内部所有的文档以及索引,需要谨慎使用~

删除的主要用法就这两点,记录下来以备回顾~看到这里了,如果对您有帮助,点个赞吧,谢谢~