Ruby操作MongoDB(進階六)-索引Indexing
阿新 • • 發佈:2017-08-11
index create drop ruby list
在本博文中,我們主要介紹數據庫索引。主要包含創建索引,刪除索引,列出索引
數據庫驅動提供了在集合上創建,刪除和查看索引的方法。
創建索引
創建索引的操作中,可以一次創建一個索引,也可以一次創建多個索引。在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_version | 2維索引的版本 |
:bits | 2位索引中設定經緯度的最大邊界 |
:max | 2維索引的經緯度的最大邊界值 |
:min | 2維索引的經緯度的最小邊界值 |
: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