类:Mongo::Index::View
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"(集合)
只读
集合 索引集合。
-
# operation_timeout_ms ⇒ Integer | nil |作为选项传递给视图的 timeout_ms 值。
只读
private
整数 | nil |作为选项传递给视图的 timeout_ms 值。
CursorHost 包含的属性
实例方法摘要折叠
-
# create_many (*models) ⇒ 结果
在集合上创建多个索引。
-
# create_one (keys, options = {}) ⇒ 结果
在集合上创建索引。
-
# drop_all (options = {}) ⇒ 结果
删除集合上的所有索引。
-
# drop_one (name, options = {}) ⇒ 结果
按名称删除索引。
-
#each (&block) ⇒ 对象
遍历集合的所有索引。
-
# get (keys_or_name) ⇒ 哈希
按特定名称或规范获取索引信息的便捷方法。
-
#initialize (集合, options = {}) ⇒ 查看
构造函数
创建新的索引视图。
-
# operation_timeups (opts = {}) ⇒ 哈希
private
在操作级别上设立的timeout_ms 值(如果有),和/或在集合/数据库/客户端级别上设立的timeout_ms(如果有)。
-
#timeout_ms ⇒ Integer | nil
用于此操作的 timeout_ms 值;指定为视图的选项,或从集合继承。
Cursor::NonTailable 中包含的方法
CursorHost 包含的方法
Retryable 中包含的方法
#read_worker 、 #select_server 、 #write_worker
构造函数详情
实例属性详细信息
# batch_size ⇒整数(只读)
返回 batch_size 发送 listIndexes 命令时结果批处理的大小。
38 39 40 |
# File 'lib/ Mongo/ 索引/view.rb', 第 38 行 def batch_size @batch_size end |
# collection =" Collection " (只读)
返回集合索引集合。
34 35 36 |
# File 'lib/ Mongo/ 索引/view.rb', 第 34 行 def 集合 @collection end |
# operation_timeout_ms ⇒ Integer | nil |作为选项传递给视图的 timeout_ms 值。(只读)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回整数 | nil |作为选项传递给视图的 timeout_ms 值。
44 45 46 |
# File 'lib/ Mongo/ 索引/view.rb', 第 44 行 def operation_timeout_ms @operation_timeout_ms end |
实例方法详细信息
# create_many (*models) ⇒结果
在MongoDB 3.0.0及更高版本上,将在服务器上并行创建索引。
在集合上创建多个索引。
216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 |
# File 'lib/ Mongo/ 索引/view.rb', 第 216 行 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( 客户端: 客户端, 会话: 会话, operation_timeups: operation_timeups() ) 操作::创建索引.new(spec).执行(server, 上下文: 上下文) end end |
# create_one (keys, options = {}) ⇒结果
请注意,列出的选项可能是可用选项的子集。
在集合上创建索引。
有关服务器版本支持的选项的完整列表,请参阅MongoDB文档。
167 168 169 170 171 172 173 174 175 176 177 178 179 180 |
# File 'lib/ Mongo/ 索引/view.rb', 第 167 行 def create_one(密钥, = {}) = .dup = {} if 会话 = @options[:session] [:session] = 会话 end %i(commit_quorum 会话 comment timeout_ms max_time_ms).每 do |key| if 值 = .删除(key) [key] = 值 end end create_many({ 键: 密钥 }.合并(merge)(), ) end |
# drop_all (options = {}) ⇒结果
删除集合上的所有索引。
119 120 121 |
# File 'lib/ Mongo/ 索引/view.rb', 第 119 行 def drop_all( = {}) drop_by_name(Index::所有, ) end |
# drop_one (name, options = {}) ⇒结果
按名称删除索引。
101 102 103 104 |
# File 'lib/ Mongo/ 索引/view.rb', 第 101 行 def drop_one(名称, = {}) 提高 错误::MultiIndexDrop.new if 名称 == Index::所有 drop_by_name(名称, ) end |
#each (&block) ⇒对象
遍历集合的所有索引。
279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 |
# File 'lib/ Mongo/ 索引/view.rb', 第 279 行 def 每(和块) 会话 = 客户端.get_session(@options) 上下文 = 操作::上下文.new( 客户端: 客户端, 会话: 会话, operation_timeups: operation_timeups(@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 |
# get (keys_or_name) ⇒哈希
按特定名称或规范获取索引信息的便捷方法。
265 266 267 268 269 |
# File 'lib/ Mongo/ 索引/view.rb', 第 265 行 def 获取(keys_or_name) find do |索引(index)| (索引(index)[名称] == keys_or_name) || (索引(index)[键] == normalize_keys(keys_or_name)) end end |
# operation_timeups (opts = {}) ⇒ 哈希
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回在操作级别(如果有)上设立的timeout_ms 值,和/或在集合/数据库/客户端级别上设立的timeout_ms(如果有)。
340 341 342 343 344 345 346 347 348 |
# File 'lib/ Mongo/ 索引/view.rb', 第 340 行 def operation_timeups(opts = {}) {}.点击 do |结果| if opts[:timeout_ms] || operation_timeout_ms 结果[:operation_timeout_ms] = opts.删除(:timeout_ms) || operation_timeout_ms else 结果[:inherited_timeout_ms] = 集合.timeout_ms end end end |
#timeout_ms ⇒ Integer | nil
用于此操作的 timeout_ms 值;指定为视图的选项,或从集合继承。
332 333 334 |
# File 'lib/ Mongo/ 索引/view.rb', 第 332 行 def timeout_ms operation_timeout_ms || 集合.timeout_ms end |