Ruby操作MongoDB(进阶六)-索引Indexing
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ruby操作MongoDB(进阶六)-索引Indexing相关的知识,希望对你有一定的参考价值。
在本博文中,我们主要介绍数据库索引。主要包含创建索引,删除索引,列出索引
数据库驱动提供了在集合上创建,删除和查看索引的方法。
创建索引
创建索引的操作中,可以一次创建一个索引,也可以一次创建多个索引。在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的主要内容,如果未能解决你的问题,请参考以下文章
Ruby操作MongoDB(进阶十一)--空间信息搜索Geospatial Search
Ruby操作MongoDB(进阶五)-数据库管理Administration
Ruby操作MongoDB(进阶八)-聚合操作Aggregation