|
在本博文中,我们主要介绍数据库索引。主要包含创建索引,删除索引,列出索引
数据库驱动提供了在集合上创建,删除和查看索引的方法。
创建索引的操作中,可以一次创建一个索引,也可以一次创建多个索引。在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
|
|