创建索引的语法
因为MongoDB中存放了大量的数据,所以为了加快数据检索速度,需要为集合设置索引
db.collection.createIndex({keys:1},options)
索引字段按照升序排序,属性值为1,降序排列属性值为-1
因为创建索引的过程会阻塞MongoDB,影响其他增删改查操作,所以background参数代表在空闲的时候创建索引
db.student.createIndex(name:1)
db.student.dropIndexes()
db.student.createIndex({name:1},{background:true})
db.student.createIndex({name:1},{background:true,name:"name"})
db.student.getIndexes()
唯一性索引
唯一性索引只能创建在每个记录都含有的公共字段上,在非公共字段上是不能创建唯一性索引的。
db.student.createIndex({sid:1},{background:true,unique:true})
数据准备
use school
db.student.update({name:"Scott"},{$set:{sid:8000}})
db.student.update({name:"陈浩"},{$set:{sid:8001}})
db.student.update({name:"刘娜"},{$set:{sid:8002}})
db.student.update({name:"赵婷婷"},{$set:{sid:8003}})
use school
db.student.createIndex({sid:1},{background:true,unique:true,name:"sid"})
创建索引的原则
数据量很大的集合必须创建索引,相反则不需要创建索引
集合的数据读取多过写入,则需要创建索引
给经常被当做查询条件的字段设置索引