MongoDB 关于索引操作命令实例详解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/netdxy/article/details/54847909

索引是提高查询查询效率最有效的手段。索引是一种特殊的数据结构,索引以易于遍历的形式存储了数据的部分内容(如:一个特定的字段或一组字段值),索引会按一定规则对存储值进行排序,而且索引的存储位置在内存中,所在从索引中检索数据会非常快。如果没有索引,MongoDB必须扫描集合中的每一个文档,这种扫描的效率非常低,尤其是在数据量较大时。

1.查看索引:
db.COLLECTION_NAME.getIndexes()

[
    {
        "v" : 1,
        "key" : {
            "_id" : 1
        },
        "name" : "_id_",
        "ns" : "mars.COLLECTION_NAME"
    }
]

2.创建索引:
数字 1 表示按索引升序存储,-1 表示按索引降序方式存储
1).创建单索引
db.COLLECTION_NAME.ensureIndex({name:1})

[
    {
        "v" : 1,
        "key" : {
            "_id" : 1
        },
        "name" : "_id_",
        "ns" : "mars.COLLECTION_NAME"
    },
    {
        "v" : 1,
        "key" : {
            "name" : 1
        },
        "name" : "name_1",
        "ns" : "mars.COLLECTION_NAME"
    }
]

2).创建复合索引
db.COLLECTION_NAME.ensureIndex({name:1,age:1})

[
    {
        "v" : 1,
        "key" : {
            "_id" : 1
        },
        "name" : "_id_",
        "ns" : "mars.COLLECTION_NAME"
    },
    {
        "v" : 1,
        "key" : {
            "name" : 1
        },
        "name" : "name_1",
        "ns" : "mars.COLLECTION_NAME"
    },
    {
        "v" : 1,
        "key" : {
            "name" : 1,
            "age" : 1
        },
        "name" : "name_1_age_1",
        "ns" : "mars.COLLECTION_NAME"
    }
]

3).创建唯一索引:
db.COLLECTION_NAME.ensureIndex({name:1,age:1},{unique:true})

[
    {
        "v" : 1,
        "key" : {
            "_id" : 1
        },
        "name" : "_id_",
        "ns" : "mars.COLLECTION_NAME"
    },
    {
        "v" : 1,
        "unique" : true,
        "key" : {
            "name" : 1,
            "age" : 1
        },
        "name" : "name_1_age_1",
        "ns" : "mars.COLLECTION_NAME"
    }
]

3.删除索引:
1).根据索引的 name 字段名称删除,比如如上显示删除第二个索引
db.COLLECTION_NAME.dropIndex("name_1_age_1_unique_true")
2).根据创建时指定的索引的 key 删除,比如如上显示删除第二个索引
db.COLLECTION_NAME.dropIndex({name:1,age:1})
3).删除所有索引
db.COLLECTION_NAME.dropIndexes()

猜你喜欢

转载自blog.csdn.net/netdxy/article/details/54847909