类:Mongo::Index::View
- 继承:
-
对象
- 对象
- Mongo::Index::View
- 扩展方式:
- 可转发
- 包括:
- 可枚举、可重试
- 定义于:
- 构建/ruby-driver-v2.19/lib/ mongo / 索引/view.rb
Overview
表示索引视图的类。
常量摘要折叠
- KEY =
索引键字段。
'key'.冻结
- NAME =
索引名称字段。
' name '.冻结
- OPTIONS =
Ruby 索引选项到服务器选项的映射。
{ :背景 => :背景, :bits => :bits, :bucket_size => :bucketSize, :default_ language => :default_ language, :expire_after => :expireAfterSeconds, :expire_after_seconds => :expireAfterSeconds, :key => :key, : language_override => : language_override, :max => :max, :min => :min, :name => :name, :partial_filter_expression => :partialFilterExpression, :sparse => :sparse, :sphere_version => :'2dsphereIndexVersion', :storage_engine => :storageEngine, :text_version => :textIndexVersion, :unique => :unique, :version => :v, :weights => :weights, :collation => :collation, :comment => :comment, :wildcard_projection => :wildcardProjection, }.冻结
实例属性摘要折叠
-
# batch_size ⇒ 整数
只读
batch_size 发送 listIndexes 命令时结果批处理的大小。
-
# 集合 ="Collection"(集合)
只读
集合 索引集合。
实例方法摘要折叠
-
# create_many (*models) ⇒ 结果
在集合上创建多个索引。
-
# create_one (keys, options = {}) ⇒ 结果
在集合上创建索引。
-
# drop_all (options = {}) ⇒ 结果
删除集合上的所有索引。
-
# drop_one (name, options = {}) ⇒ 结果
按名称删除索引。
-
#each (&block) ⇒ 对象
遍历集合的所有索引。
-
# get (keys_or_name) ⇒ 哈希
按特定名称或规范获取索引信息的便捷方法。
-
#initialize (集合, options = {}) ⇒ 查看
构造函数
创建新的索引视图。
Retryable 中包含的方法
#read_worker 、 #select_server 、 #write_worker
构造函数详情
#initialize (集合, options = {}) ⇒查看
创建新的索引视图。
293 294 295 296 297 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 索引/view.rb', line 293 def 初始化(集合, = {}) @collection = 集合 @batch_size = [:batch_size] @options = end |
实例属性详细信息
# batch_size ⇒整数(只读)
返回 batch_size 发送 listIndexes 命令时结果批处理的大小。
34 35 36 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 索引/view.rb', line 34 def batch_size @batch_size end |
# collection =" Collection " (只读)
返回集合索引集合。
30 31 32 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 索引/view.rb', line 30 def 集合 @collection end |
实例方法详细信息
# create_many (*models) ⇒结果
注意:
在MongoDB 3.0.0及更高版本上,将在服务器上并行创建索引。
在集合上创建多个索引。
206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 索引/view.rb', line 206 def create_many(*模型) 模型 = 模型.展平 = {} if 模型 && !模型.last.键?(:key) = 模型.Pop end 客户端.发送(:with_session, @options.合并(merge)()) do |会话| server = next_primary(nil, 会话) 索引 = normalize_models(模型, server) 索引.每 do |索引(index)| if 索引(index)[:bucketSize] || 索引(index)[' bucketSize '] 客户端.log_warn(“从 MongoDB 4.4开始,Haystack 索引(bucketSize 索引选项)已弃用”) end end spec = { 索引: 索引, db_name: database.名称, coll_name: 集合.名称, 会话: 会话, commit_quorum: [:commit_quorum], write_concern: write_concern, comment: [:comment], } 操作::创建索引.new(spec).执行(server, 上下文: 操作::上下文.new(客户端: 客户端, 会话: 会话)) end end |
# create_one (keys, options = {}) ⇒结果
注意:
请注意,列出的选项可能是可用选项的子集。
在集合上创建索引。
有关服务器版本支持的选项的完整列表,请参阅MongoDB文档。
157 158 159 160 161 162 163 164 165 166 167 168 169 170 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 索引/view.rb', line 157 def create_one(密钥, = {}) = .dup = {} if 会话 = @options[:session] [:session] = 会话 end %i(commit_quorum 会话 comment).每 do |key| if 值 = .删除(key) [key] = 值 end end create_many({ 键: 密钥 }.合并(merge)(), ) end |
# drop_all (options = {}) ⇒结果
删除集合上的所有索引。
109 110 111 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 索引/view.rb', line 109 def drop_all( = {}) drop_by_name(Index::所有, comment: [:comment]) end |
# drop_one (name, options = {}) ⇒结果
按名称删除索引。
91 92 93 94 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 索引/view.rb', line 91 def drop_one(名称, = {}) 提高 错误::MultiIndexDrop.new if 名称 == Index::所有 drop_by_name(名称, comment: [:comment]) end |
#each (&block) ⇒对象
遍历集合的所有索引。
265 266 267 268 269 270 271 272 273 274 275 276 277 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 索引/view.rb', line 265 def 每(和块) 会话 = 客户端.发送(:get_session, @options) cursor = read_with_retry_cursor(会话, ServerSelector.主节点, self) do |server| send_initial_query(server, 会话) end if block_given? cursor.每 do |doc| 产量 doc end else cursor.to_enum end end |