mongodb的索引

查看索引

  1. db.tab1.getIndexes()

創建索引

  1. db.tab1.ensureIndex({x:1})
    1. x代表創建索引的字段,1代表正向排序,-1代表反向排序

刪除索引

  1. db.tab1.dropIndex(“conetnt_text”)
  2. conetnt_text表示索引的name值,可以通過查看索引方法查看到name的值

1、_id索引

  1. _id索引是絕大多數集合默認建立的索引
  2. 對於每個插入的數據,mongodb都會自動生成一條唯一的_id字段

2、單鍵索引

  1. _id字段就是單鍵索引,與_id字段相同

3、多建索引

  1. 多建索引與單鍵索引創建形式相同,區別在於字段的值

4、複合索引

  1. 這裏寫圖片描述

5、過期索引

  1. 這裏寫圖片描述
  2. time字段作爲被檢查過期時間的字段,其值不能爲時間戳(詳情看下面的過期索引的限制)
  3. expireAfterSeconds字段爲過期時間,單位爲秒
  4. 過期索引的一些限制
    1. 這裏寫圖片描述

6、全文索引

  1. 建立方法
    1. 這裏寫圖片描述
    2. 第3種創建方式表示對所有字段創立一個大的全文索引
  2. 查詢方法
    1. 這裏寫圖片描述
    2. 第2種查詢用空格分隔的代表 或 條件,包含其中一個就可以
    3. 第3種查詢 -cc 表示不包含 cc 關鍵字
    4. 第4種查詢 “” 之間包含的內容代表 and 條件
  3. 相似度查詢
    1. 這裏寫圖片描述
    2. 例子:
      1. db.tab1.find({$text:{$search:"aa bb"}},{score:{$meta:"textScore"}}).sort({score:{$meta:"textScore"}})
    3. 全文索引的一些限制
    4. 這裏寫圖片描述

索引的屬性

  1. 列表內容
  2. 比較重要的屬性
    1. 名字:name
      1. {name:”自定義索引名”}
    2. 唯一性(索引字段值的唯一性):unique
      1. {unique:true|false}
      2. true代表唯一
      3. false代表不唯一
    3. 稀疏性(不存在的索引字段不創建索引):sparse
      1. {sparse:true|false}
    4. 是否定時刪除:
  3. 這裏寫圖片描述

地理位置索引

  1. 數據格式
    1. db.dili.insert({"loc":[50,50],"title":"標題","content":"內容"})
  2. 創建方式
    1. db.dili.ensureIndex({“字段名”:”2d”})
    2. db.dili.ensureIndex({"loc":"2d"})
  3. 查詢方式
    1. $near查詢:查詢距離某個點最近的點
    2. 例子:
      1. 查詢附近的點(沒有限制範圍):db.dili.find({"loc":{$near:[10,10]}})
      2. 限制範圍查找附近的點:db.dili.find({"loc":{$near:[10,10],$maxDistance:10}})
發佈了66 篇原創文章 · 獲贊 8 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章