《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中的数据删除操作;
三、删除文档
当通过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,那么就代表删除成功,如下:
五、小结
本文主要记录了在常规数据库操作中文档删除的一些用法~删除的命令也非常简单,一共有两种,分别是:
- db.collection.update(),删除集合中的文档,本身是批量删除,如果想实现单个删除那么可以通过配置项justone实现;
- db.collection.drop(),它可以删除集合本身,当删除集合本身的时候会删除集合内部所有的文档以及索引,需要谨慎使用~
删除的主要用法就这两点,记录下来以备回顾~看到这里了,如果对您有帮助,点个赞吧,谢谢~