上篇文章,介绍了一种分析mongodb性能的方法,本篇文章将介绍一下索引的使用,索引也是一种常见的查询优化的方式。这里将介绍一下,若是建立索引。html
[MongoDB]入门操做mongodb
[MongoDB]count,gourp,distinct性能
[MongoDB]索引code
mongodb培训blog
索引索引
咱们在users的collection上面为name字段建立索引
db.users.ensureIndex({"name":1})
查询该collection上面已经建立了哪些索引
db.users.getIndexes()
经过查询发现该collection上面为id和name建立了索引,其中_id是默认的索引。
删除字段name上面的索引
db.users.dropIndex({"name":1})
复合索引
在name和age上面建立复合索引
db.users.ensureIndex({"name":1,"age":-1})
该复合索引被建立后,基于name和age的查询将会用到该索引,或者是基于name的查询也会用到该索引,可是只是基于age的查询将不会用到该复合索引。
所以,若是想用到复合索引,必须在查询条件中包含复合索引中的前N个索引列。然而若是查询条件中的键值顺序和复合索引中的建立顺序不一致的话,MongoDB能够智能的帮助咱们调整该顺序,以便使复合索引能够为查询所用。
惟一索引
默认状况下建立的索引都不是惟一索引,若是建立惟一索引须要unique参数设置为true
为name建立惟一索引
db.users.ensureIndex({"name":1},{"unique":true})
若是这时插入重复的name值,就会报错
关于索引的建立,删除,查询及惟一的建立方式,就介绍到这里。