如何设置索引的属性
索引比拟重要的属性
索引的名字
查看mongoDB默认生成的索引的名字
mongoDB默认生成的索引名字是key1_1(或-1)key2_1(或-1)
创立自定义名字的索引db.test_2.ensureIndex({x:1,p:1},{name:'myIndexName'})
查询创建的成果:
删除索引 依据索引名字删除索引db.test_2.dropIndex('myIndexName')
索引的唯一性
创建了唯一索引的字段值不克不及重复.
创立唯一索引db.test_4.ensureIndex({m:1,n:1},{unique:true})
不克不及插入重复记录:
索引稀疏性
mongoDB默认创立的索引是不稀疏.
稀疏性为true,mongoDB不会为其他的字段创立索引,而只会为指定的字段创立索引.
查询存在某个字段的记录db.test_4.find({m:{$exists:true}})
方才插进去的{n:1}的记录查询不到.
创立稀疏索引db.test_4.ensureIndex({m:1},{sparse:true})
如果创建的是稀疏索引,则索引不包括的字段是查询不出来的.
仔细看看上图,必要使用hint,强制使用某个索引,由于m_1索引是稀疏索引,并且该索引只有m字段,没有其他字段,所以根据其他字段查询的时候是会查询不到记录的.
下面我们测试一下不是稀疏索引的情况:
在w字段创立索引:
查询一下不存在记录:
可以看到是可以查询到不存在w字段的记录.
过时索引