[MongoDB]索引

來源:互聯網
上載者:User

標籤:

摘要

上篇文章,介紹了一種分析mongodb效能的方法,本篇文章將介紹一下索引的使用,索引也是一種常見的查詢最佳化的方式。這裡將介紹一下,如果建立索引。

相關文章

[MongoDB]入門操作

[MongoDB]增刪改查

[MongoDB]count,gourp,distinct

[MongoDB]mapReduce

[MongoDB]Profiling效能分析

[MongoDB]索引

Index

索引

我們在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值,就會報錯

總結

關於索引的建立,刪除,查詢及唯一的建立方式,就介紹到這裡。

[MongoDB]索引

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.