標籤:alt   dex   ima   唯一索引   使用方法   建立   es2017   學習   開始   
目標:實現索引的建立、查詢、刪除、explan管理等作業環境:> db.version()3.4.7 索引建立滿足的基本需求:1;索引提高查詢速度2;在mongodb中,索引可以按自動列升序/降序來建立,便於排序3;預設是用btree來組織索引檔案,2.4版本以後,也允許建立hash索引 管理索引常用到的文法有:db.c1.createIndex(keypattern[,options])    #keypattern表示索引匹配的欄位列,例如name:1 表示那麼列升序建立索引,[,options]表示使用另一個欄位列建立索引,從而組成複合索引db.c1.getIndexes()    #查看索引的文法,當還沒有手動建立索引的時候,其實系統預設也會有索引列:_id_db.c1.find({name:‘test10‘}).explain()    #表示查詢name列集合集值test10是否有建立索引 一、索引的建立常規的索引建立方式有基本索引、複合索引、唯一索引三類。1、基本索引> db.c1.createIndex({newname:1}){    "createdCollectionAutomatically" : false,    "numIndexesBefore" : 1,    "numIndexesAfter" : 2,    "ok" : 1}#由上可以看出建立了一個基本的單列索引 2、複合索引的建立> db.c1.createIndex({newname:1,age:-1}) 3、唯一索引的建立唯一索引的主要功能就是只允許欄位值唯一常用文法為:db.c1.ensureIndex(keypattern[,options]) - DEPRECATED, use createIndex() instead> db.c1.ensureIndex({num:1},{unique:true})
 
 二、索引的查看> db.c1.getIndexes() 1;查看基本索引 
 
 2;查看複合索引 
 
  3;查看唯一索引 
 
三、explan索引驗證建立索引主要是供加快查詢速度的,基本索引建立之後,基於該列查詢會加快速度。複合索引一般是由兩個或者多個列做成索引值,如果是單列條件查詢的話,最開始建立的欄位列能夠有效(也就是說複合索引建立後,程式單列查詢會有索引效果),但是之後的欄位列的索引查詢是沒有效果的。如果複合索引裡面用到的查詢條件都是建立的複合索引時的列,欄位條件查詢時變換位置也沒關係 使用方法:> db.c1.find({newname:‘test5‘},{age:5}).explain() 
  #可以看到它的一個複合查詢
 
 
 
 四、索引的刪除常用的文法:db.c1.dropIndex(index) > db.c1.dropIndex({age:-1}){ "nIndexesWas" : 6, "ok" : 1 }> db.c1.dropIndex({num:1}){ "nIndexesWas" : 5, "ok" : 1 }> db.c1.dropIndex({name:1,age:-1}){ "nIndexesWas" : 4, "ok" : 1 } 
 
 
2、MongoDB學習之索引的管理