下面是实验步骤:

> db.things.find()
{ "_id" : ObjectId("5652d71a1524dc14663060e8"), "x" : 4, "j" : 2 }
{ "_id" : ObjectId("5652d71a1524dc14663060e9"), "x" : 4, "j" : 3 }
{ "_id" : ObjectId("5652d71a1524dc14663060ea"), "x" : 4, "j" : 4 }
{ "_id" : ObjectId("5652d71a1524dc14663060eb"), "x" : 4, "j" : 5 }
{ "_id" : ObjectId("5652d71a1524dc14663060ec"), "x" : 4, "j" : 6 }
{ "_id" : ObjectId("5652d71a1524dc14663060ed"), "x" : 4, "j" : 7 }
{ "_id" : ObjectId("5652d71a1524dc14663060ee"), "x" : 4, "j" : 8 }
{ "_id" : ObjectId("5652d71a1524dc14663060ef"), "x" : 4, "j" : 9 }
{ "_id" : ObjectId("56d6925aec16355d82bc18fd"), "x" : 4, "j" : 1 }
{ "_id" : ObjectId("56d6925aec16355d82bc18fe"), "x" : 4, "j" : 2 }
{ "_id" : ObjectId("56d6925aec16355d82bc18ff"), "x" : 4, "j" : 3 }
{ "_id" : ObjectId("56d6925aec16355d82bc1900"), "x" : 4, "j" : 4 }
{ "_id" : ObjectId("56d6925aec16355d82bc1901"), "x" : 4, "j" : 5 }
{ "_id" : ObjectId("56d6925aec16355d82bc1902"), "x" : 4, "j" : 6 }
{ "_id" : ObjectId("56d6925aec16355d82bc1903"), "x" : 4, "j" : 7 }
{ "_id" : ObjectId("56d6925aec16355d82bc1904"), "x" : 4, "j" : 8 }
{ "_id" : ObjectId("56d6925aec16355d82bc1905"), "x" : 4, "j" : 9 }
{ "_id" : ObjectId("56d6925aec16355d82bc1906"), "x" : 4, "j" : 10 }
{ "_id" : ObjectId("56d6925aec16355d82bc1907"), "x" : 4, "j" : 11 }
{ "_id" : ObjectId("56d6925aec16355d82bc1908"), "x" : 4, "j" : 12 }
Type "it" for more
> it
{ "_id" : ObjectId("56d6925aec16355d82bc1909"), "x" : 4, "j" : 13 }
{ "_id" : ObjectId("56d6925aec16355d82bc190a"), "x" : 4, "j" : 14 }
{ "_id" : ObjectId("56d6925aec16355d82bc190b"), "x" : 4, "j" : 15 }
{ "_id" : ObjectId("56d6925aec16355d82bc190c"), "x" : 4, "j" : 16 }
{ "_id" : ObjectId("56d6925aec16355d82bc190d"), "x" : 4, "j" : 17 }
{ "_id" : ObjectId("56d6925aec16355d82bc190e"), "x" : 4, "j" : 18 }
{ "_id" : ObjectId("56d6925aec16355d82bc190f"), "x" : 4, "j" : 19 }
{ "_id" : ObjectId("56d6925aec16355d82bc1910"), "x" : 4, "j" : 20 }
>

在文档15上创建索引:
> db.things.ensureIndex({"x":4,"j":15})
{
        "createdCollectionAutomatically" : false,
        "numIndexesBefore" : 1,
        "numIndexesAfter" : 2,
        "ok" : 1
}

在文档16上创建索引,并命名为duansf
> db.things.ensureIndex({"x":4,"j":16},{"name":"duansf"})
{
        "createdCollectionAutomatically" : false,
        "numIndexesBefore" : 2,
        "numIndexesAfter" : 3,
        "ok" : 1
}
>

查索引:
> db.things.getIndexes()
[
        {
                "v" : 1,
                "key" : {
                        "_id" : 1
                },
                "ns" : "test.things",
                "name" : "_id_"
        },
        {
                "v" : 1,
                "key" : {
                        "x" : 4,
                        "j" : 15
                },
                "name" : "x_4_j_15",
                "ns" : "test.things"
        },
        {
                "v" : 1,
                "key" : {
                        "x" : 4,
                        "j" : 16
                },
                "name" : "duansf",
                "ns" : "test.things"
        }
]

>
用remove命令删除所有文档:
> db.things.remove({})
WriteResult({ "nRemoved" : 26 })
>
things集合记录为空
> db.things.find()

但索引还存在:
> db.things.getIndexes()
[
        {
                "v" : 1,
                "key" : {
                        "_id" : 1
                },
                "ns" : "test.things",
                "name" : "_id_"
        },
        {
                "v" : 1,
                "key" : {
                        "x" : 4,
                        "j" : 15
                },
                "name" : "x_4_j_15",
                "ns" : "test.things"
        },
        {
                "v" : 1,
                "key" : {
                        "x" : 4,
                        "j" : 16
                },
                "name" : "duansf",
                "ns" : "test.things"
        }
]
>

清空整个集合:
> db.things.drop()
true
>
>
> db.things.find()
>
>
下面可以看到索引不再存在:
> db.things.getIndexes()
[ ]
>

结论:集合清空后,索引自动删除
      文档删除后,被删除文档对应的索引还在

Remove 以及dorp做实验验证MongoDB删除文档后索引是否会自动删除的更多相关文章

  1. mongodb remove删除文档的用法

    在看<mongoDB权威指南>中,在删除文档时,出现问题: 书中介绍:采用db.foo.remove()命令则可以删除foo集合中所有的文档,但是在执行该命令时,shell客户端却报错. ...

  2. MongoDB学习笔记二:创建、更新及删除文档

    插入并保存文档 对目标集使用insert方法插入一个文档: > db.foo.insert({"bar" : "baz"}) 这个操作会给文档增加一个&q ...

  3. Mongodb(3)插入文档,更新文档,删除文档

    insert() 方法 要插入数据到 MongoDB 集合,需要使用 MongoDB 的  insert() 或 save() 方法. 插入文档:db.COLLECTION_NAME.insert(d ...

  4. Mongodb 笔记02 创建、更新和删除文档

    创建.更新和删除文档          1. 插入并保存: 1). 单条插入,insert : db.foo.insert({"bar":"baz"}) 2). ...

  5. MongoDB(二)创建更新删除文档

    插入并保存文档操作 用insert向目标集合插入文档,如果没有_id键则会自动添加.最后自动保存. >db.foo.insert({"bar":"baz" ...

  6. MongoDB创建\更新\删除文档操作

     一.插入\创建文档 --当插入一个不存在的文档时,会自己主动创建一个文档 [root@racdb ~]# mongo MongoDB shell version: 2.4.14 connecti ...

  7. MongoDB学习笔记-创建、更新、删除文档

    创建     MongoDB中使用insert方法来向集合插入文档,然后保存到MongoDB中.     db.foo.insert({"hehe":"呵呵"} ...

  8. 创建、更新、删除文档。 --- Mongodb权威指南阅读。

    插入文档: db.foo.insert({ "key" : "value"}); 使用insert插入一个数据,文档中如果没有_id 会自动给文档增加_id. ...

  9. MongoDB 教程(七):插入文档、更新文档、删除文档

    MongoDB 插入文档 文档的数据结构和JSON基本一样. 所有存储在集合中的数据都是BSON格式 —— BSON是一种类json的二进制形式的存储格式,简称Binary JSON. MongoDB ...

随机推荐

  1. 7 款顶级的开源 Web 分析软件

    Web 分析无非就是 Web 流量的测量.但它并不限于测量网络流量,还包括: 分析 数据采集 为了了解和优化网页而上报网络数据 Google Analytics是最广泛使用的基于云的网络分析服务.不过 ...

  2. 用较早版本的APIs实现抽象类

    原文链接:http://android.eoe.cn/topic/android_sdk 用较早版本的APIs实现抽象类 这节课程我们讨论如何创建一个实现类,即能对应新版本的API,又能够保持对老版本 ...

  3. Android 开发日常积累

    Android 集合 Android 开源项目分类汇总 扔物线的 HenCoder 高级 Android 教程 hencoder HenCoder:给高级 Android 工程师的进阶手册 Andro ...

  4. 【Unity】4.4 添加角色控制器

    分类:Unity.C#.VS2015 创建日期:2016-04-10 一.简介 设计完毕基本的场景后,一般都需要先运行看看效果如何,即先让场景"动起来",以方便观察不同的位置,而不 ...

  5. Vuex 实践讲解

    state 用来数据共享数据存储 mutation 用来注册改变数据状态 getters 用来对共享数据进行过滤操作 action 解决异步改变共享数据 这个四大特征就是核心,如何用怎么用 接下来还是 ...

  6. HTML5 History API让ajax能回退到上一页

    HTML5 History API提供了一种功能,能让开发人员在不刷新整个页面的情况下修改站点的URL.这个功能很有用,例如通过一段JavaScript代码局部加载页面的内容,你希望通过改变当前页面的 ...

  7. CodeBlocks 17.12 工程如何引用其他文件夹的头文件和源程序

    假设你的工程名为project,目录为F:\test.但是你想在project中使用文件夹F:\library下面的一些头文件和源程序.由于这些头文件和源程序与工程project不在同一目录下面,所以 ...

  8. [SQL in Azure] High Availability and Disaster Recovery for SQL Server in Azure Virtual Machines

    http://msdn.microsoft.com/en-us/library/azure/jj870962.aspx Microsoft Azure virtual machines (VMs) w ...

  9. windows下通过Chocolatey安装或升级node.js

    以管理员身份运行windows PowerShell并安装Chocolatey 我的机器是windows10,可以在开始菜单->所有应用->W栏中找到Window PowerShell并运 ...

  10. linux命令(44):sed,vim;去掉文件中的^M 符号,去掉行首空格和制表符

    注:下面的直接粘贴会出错,要重新输入^M 如何输入^M,先 ctrl+v,然后 ctrl+m 第一种方法: cat -A filename 就可以看到windows下的断元字符 ^M要去除他,最简单用 ...