索引的介紹
1、索引(indexes)幫助mongoDB提高執行查詢的效率
2、沒有索引,MongoDB必須執行集合掃描,即掃描集合中的每個文檔,以選擇與查詢語句匹配的文檔。
3、如果查詢存在適當的索引,則MongoDB可以使用該索引來限制它必須檢查的文檔數量。
4、索引是特殊的數據結構[1],以容易的遍歷形式存儲集合數據集的一小部分。
5、索引存儲由字段的值排序的特定字段或字段集的值
6、索引條目的排序支持有效的等效匹配和基於范圍的查詢操作。
7、此外,MongoDB可以通過使用索引中的排序返回排序結果。
下圖說明了使用索引選擇和順序匹配文檔的查詢:
從根本上說,MongoDB中的索引類似於其他數據庫系統中的索引。 MongoDB在集合級別定義索引,並支持MongoDB集合中文檔的任何字段或子字段的索引。
創建索引
MongoDB在創建集合時在_id字段上創建一個唯一的索引。 _id索引阻止客戶端插入兩個與_id字段具有相同值的文檔。 您不能在_id字段上刪除此索引。
在分片集群中,如果不使用_id字段作為分片鍵,則應用程序必須確保_id字段中的值的唯一性,以防止錯誤。 這通常通過使用標准的自動生成的ObjectId來完成。
創建索引。
To create an index, use db.collection.createIndex() or a similar method from your driver.
db.collection.createIndex(<key and index type secification>,<options>)
MongoDB提供了許多不同的索引類型來支持特定類型的數據和查詢。
如果同一規范的索引不存在,則db.collection.createIndex()方法僅創建索引。
MongoDB索引使用B-tree數據結構。
MongoDB提供了許多不同的索引類型來支持特定類型的數據和查詢。