上篇文章,介紹了一種分析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值,就會報錯
關於索引的建立,刪除,查詢及惟一的建立方式,就介紹到這裏。