1. 程式人生 > >Ruby操作MongoDB(進階六)-索引Indexing

Ruby操作MongoDB(進階六)-索引Indexing

index create drop ruby list

在本博文中,我們主要介紹數據庫索引。主要包含創建索引,刪除索引,列出索引

數據庫驅動提供了在集合上創建,刪除和查看索引的方法。

  1. 創建索引

創建索引的操作中,可以一次創建一個索引,也可以一次創建多個索引。在3.0及其以上版本的MongoDB數據庫中,多個索引一起創建時是被平行創建出來的。在更早的版本中,多個索引是按照順序創建的。

單個索引的創建,使用create_one方法

client=Mongo::Client.new([‘127.0.0.1:27017‘],:database=>‘film‘)
client[:actors].indexes.create_one({:name=>1},unique:true)

多個索引的創建,使用create_many方法。需要註意的是,當一次創建多個索引時,索引的鍵值必須按照說明通過對應的特定鍵值對傳遞。這是因為每個被創建的索引的參數可能是不同的。

client=Mongo::Client.new([‘127.0.0.1:27017‘],:database=>‘film‘)
client[:actors].indexes.create_many([
       {:key=>{name:1},unique:true},
       {:key=>{label:-1}}])

下面的表中列出了創建索引時可用參數的完整列表

參數參數描述
:background取值為true或者false,明確索引創建的時候是在後臺執行還是前臺執行
:expire_after從當前時間往後,讓文檔失效的秒數
:name索引的名字
:sparse確定索引是否稀疏,要麽是true要麽是false
:storage_engine定義該索引的存儲引擎的名字
:version使用的索引格式的版本
:default_language文本索引的默認語言
:language_override覆蓋了默認語言時,使用的域的名字
:text_version存儲文本索引的格式版本

:weights在文本搜索中指定字段和權重的文檔
:sphere_version2維索引的版本
:bits2位索引中設定經緯度的最大邊界
:max2維索引的經緯度的最大邊界值
:min2維索引的經緯度的最小邊界值
:bucket_size將geo haystack索引位置值進行分組是適應的單位數
:partial_filter_expression並行索引表達式過濾器

2. 刪除索引

刪除索引,使用dropOne或dropAll

  client=Mongo::Client.new([‘127.0.0.1:27017‘],:database=>‘film‘)
  client[:bands].index.drop_one(‘name_1‘)
  client[:bands],drop_all


3. 列出索引

    client=Mongo::Client.new([‘127.0.0.1:27017‘],:database=>‘film‘)
    client[:bands].indexes.each do |index|
      p index
    end




本文出自 “techFuture” 博客,謝絕轉載!

Ruby操作MongoDB(進階六)-索引Indexing