mongodb索引
2018-02-25 本文已影响0人
非文666
1. 创建索引
语法
# key代表要创建索引的字段,1代表按照升序创建,也可以设置为-1 代表降序
db.COLLECTION_NAME.ensureIndex({key:1})
实例
# 在myCollection 集合的age字段上创建升序索引
> db.myCollection.ensureIndex({"age":1})
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 1,
"numIndexesAfter" : 2,
"ok" : 1
}
创建索引其他参数
- backgroud boolean值 是否创建索引在后台执行
- unique boolean值 是否是唯一索引
- name string 指定索引的名称
- sparse boolean值 是否为不存在的字段创建索引,默认是false
- weights 索引的权重值 1-99999
2. 查看索引
语法
db.COLLECTION_NAME.getindexes()
实例
# 查看myCollection集合的索引
> db.myCollection.getIndexes()
[
{
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "primeton.myCollection"
},
{
"v" : 2,
"key" : {
"age" : 1
},
"name" : "age_1",
"ns" : "primeton.myCollection"
}
]
3. 删除索引
语法
db.COLLECTION_NAME.dropIndex("INDEX_NAME")
实例
# 删除myCollection集合索引名为age_1的索引
> db.myCollection.dropIndex("age_1")
{ "nIndexesWas" : 2, "ok" : 1 }
4. 删除所有索引
语法
db.COLLECTION_NAME.dropIndexes()
实例
# 主键索引无法删除
> db.myCollection.dropIndexes()
{
"nIndexesWas" : 1,
"msg" : "non-_id indexes dropped for collection",
"ok" : 1
}