91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

【MongoDB學習筆記23】MongoDB的索引對象和數組

發布時間:2020-06-19 22:06:17 來源:網絡 閱讀:4803 作者:StanlyCheng 欄目:MongoDB數據庫

MongoDB允許深入文檔內部,對嵌套字段和數組建立索引;嵌套對象和數組字段可以和復合索引中的頂級字段一起使用,多數情況下與“正常”索引字段的行為也是一致的。

 

一、索引嵌套文檔

例如,集合中的文檔如下格式,

> db.post.findOne({"username":"sid"})   
{    
    "_id" : ObjectId("54aff7f43bd1048e7b585e39"),    
    "username" : "sid",    
    "loc" : {    
        "ip" : "1.2.3.4",    
        "city" : "springfield",    
        "state" : "ny"    
    }    
}    
>

需要在“loc”的city上建立索引來提高這個loc.city字段的查詢速度:

> db.post.ensureIndex({"loc.city":1})   
{    
    "createdCollectionAutomatically" : false,    
    "numIndexesBefore" : 1,    
    "numIndexesAfter" : 2,    
    "ok" : 1    
}    
>

利用這種方式可以建立任意深度的索引,例如可以在X.Y.Z.A.B.C上建立索引。

但是,針對子文檔“loc”上建立的索引,和建立在子文檔的某個字段“loc.city”上的索引是不同的:

(1)對整個子文檔上建立的索引,只會提高整個子文檔的的查詢速度;也就是說只有在完全匹配子文檔的查詢(包括字段順序),子文檔索引才會起作用;

(2)只有查詢loc.city字段,索引loc.city才會起作用,其他情況索引loc.city不起作用;

 


二、數組上的索引

(1)可以看得出在數組字段上建立索引的代價比較大,因為每次的刪除,更新都會對每一個索引進行刷新,太消耗服務器的資源;

(2)可以針對數組字段中的某一個元素做具體的單獨索引,減少索引的數量;例如,在數組字段comments中的第九個元素中的votes上建立索引:

> db.post.ensureIndex({"comment.10.votes":1})

同樣,只有精確匹配comment.10.votes查詢,上述索引才會起到索引的作用。

 

三、多鍵索引

如果在數組字段上創建索引,那么這個索引稱為多鍵索引( multikey)。

多鍵索引用explain函數中可以看到“isMultikey”字段的值為true,多鍵索引比非多鍵索引要慢一些;



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乌海市| 台南市| 宜都市| 黄浦区| 宜阳县| 囊谦县| 金坛市| 定边县| 博罗县| 仁布县| 洪雅县| 印江| 溧阳市| 韩城市| 教育| 烟台市| 孟州市| 始兴县| 南郑县| 内丘县| 高平市| 肥东县| 临泉县| 遂昌县| 永泰县| 塘沽区| 葵青区| 越西县| 项城市| 颍上县| 正镶白旗| 辽阳市| 庄浪县| 娄底市| 宁德市| 徐水县| 通城县| 元朗区| 孙吴县| 万源市| 札达县|