您的位置:首页 > 数据库 > Mongodb

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

2017-02-03 16:32 976 查看
索引是提高查询查询效率最有效的手段。索引是一种特殊的数据结构,索引以易于遍历的形式存储了数据的部分内容(如:一个特定的字段或一组字段值),索引会按一定规则对存储值进行排序,而且索引的存储位置在内存中,所在从索引中检索数据会非常快。如果没有索引,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()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mongodb