下面是实验步骤:

> 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. 频分复用(Frequency Division Multiplexer)

    作者:桂. 时间:2017年12月19日20:43:04 链接:http://www.cnblogs.com/xingshansi/p/8067839.html 前言 主要记录基本的频分复用原理,以及 ...

  2. php分享二十五:跨域请求

    问题: 跨域请求有几种方式? jsonp支持哪几种请求方式? 支持post请求吗? 支持get请求吗? 由于浏览器同源策略,凡是发送请求url的协议.域名.端口三者之间任意一与当前页面地址不同即为跨域 ...

  3. js评价五星

    js评价五星 1.图片(star.png): 2.图片和html文件在同级目录 <html> <head> <script src="http://libs.b ...

  4. Android开发环境搭建篇详尽的教程实例汇

    原文链接:http://android.eoe.cn/topic/android_sdk 一.android开发环境搭建图文教程整理篇: 1.Android开发环境搭建全程演示(jdk+eclip+a ...

  5. Win 10服务智能化有什么依据?

            在今年7月29日之后.Win 10操作系统就叫"视窗服务"了,当中有没有"智能'因素呢?能不能叫做"智能操作系统"呢?为什么?什么是& ...

  6. 通过show variables like ‘general_log%’可以看查询日志

    mysql> show variables like 'general_log%'; +------------------+-----------------------------+ | V ...

  7. lua -- 字体闪烁

    -- 这里是实现控件的闪烁,不能将一个局部的动作变量,赋给两个控件来动作,只能一个控件对应一个动作 function UIBagController:ShowEffect( ) local tGood ...

  8. 每日英语:Redfin Real-Estate Firm Gets Cold Shoulder in Silicon Valley

    "I used to think I was this made man," says entrepreneur Glenn Kelman. "That's what t ...

  9. ThreadLocalMap的enrty的key为什么要设置成弱引用

    ThreadLocalMap的Enrty代码实现: 将Entry的Key设置成弱引用,在配合线程池使用的情况下可能会有内存泄露的风险.之设计成弱引用的目的是为了更好地对ThreadLocal进行回收, ...

  10. linux远程拷贝命令-scp

    因为某种原因需要远程一个CentOS主机,只能通过ssh访问并下载文件.搞了半天不知道怎么处理文件,比如上传和下载.那就学习下吧. 基本命令格式 由于使用ssh,登录之后的本机地址是不需要给出的.但是 ...