Classificação: Mongo::Index::View
- Herda:
-
Objeto
- Objeto
- Mongo::Índice::Visualização
- Estendido por:
- Encaminhável
- Inclui:
- Enumerável, Cursor::NonTailable, CursorHost, Retryable
- Definido em:
- lib/mongo/index/view.rb
Visão geral
Uma classe que representa uma visualização de índices.
Colapsode resumo constante
- KEY =
O campo- chave de índice .
'key'.congelar
- NOME =
O campo de nome do índice.
'nome'.congelar
- OPÇÕES =
Os mapeamentos das opções de índice Ruby para as opções do servidor.
{ :background => :background, :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, :comentário => :comentário, :wildcard_projection => :wildcardProjection, }.congelar
Recolhimento do Resumo do atributo de instância
-
#batch_size ➤ Inteiro
Somente leitura
Batch_size O tamanho do lote de resultados ao enviar o comando listIndexes.
-
#collection ➤ Collection
Somente leitura
Collection A collection de índices.
-
#operation_timeout_ms ➤ Inteiro | nada | O valor de timeout_ms que foi passado como uma opção para a visualização.
Somente leitura
privado
Inteiro | nada | O valor de timeout_ms que foi passado como uma opção para a visualização.
Atributos incluídos do CursorHost
Recolhimento do Resumo do método de instância
-
#create_many(*models) ➤ Resultado
Cria múltiplos índices na collection.
-
#create_one(keys, options = {}) ➤ Resultado
Cria um índice na collection.
-
#drop_all(options = {}) ⇒ Resultado
Solte todos os índices da coleção.
-
#drop_one(name, options = {}) ⇒ Result
Solte um índice por seu nome.
-
#cada(&bloco) ➤ Objeto
Iterar sobre todos os índices da collection.
-
#get(keys_or_name) ➤ Hash
Método de conveniência para obter informações de índice por um nome ou especificação específica.
-
#inicializar(coleção, opções = {}) ➤ Visualizar
construtor
Crie a nova visualização do índice.
-
#operation_timeouts(opts = {}) ➤ Hash
privado
Valor de timeout_ms definido no nível de operação (se houver) e/ou timeout_ms definido no nível de coleção/ banco de dados/ cliente (se houver).
-
#timeout_ms ⇒ Integer | nil
O valor de timeout_ms a ser usado para essa operação; especificado como uma opção para a visualização ou herdado da collection.
Métodos incluídos do Cursor::NonTailable
Métodos incluídos do CursorHost
Métodos incluídos no Retryable
#read_worker, #select_server, #write_worker
Detalhes do construtor
#inicializar(coleção, opções = {}) ➤ Visualizar
Crie a nova visualização do índice.
318 319 320 321 322 323 324 325 326 |
# Arquivo 'lib/mongo/index/view.rb', linha 318 def inicializar(collection, = {}) @collection = collection @operation_timeout_ms = .excluir(:timeout_ms) validate_timeout_mode!() @batch_size = [:batch_size] @opções = end |
Detalhes do atributo da instância
#batch_size ➤ inteiro (somente leitura)
Retorna batch_size O tamanho do lote de resultados ao enviar o comando listIndexes.
38 39 40 |
# Arquivo 'lib/mongo/index/view.rb', linha 38 def batch_size @batch_size end |
#collection ➤ Collection (somente leitura)
Retorna collection A collection de índices.
34 35 36 |
# Arquivo 'lib/mongo/index/view.rb', linha 34 def collection @collection end |
#operation_timeout_ms ➤ Inteiro | nada | O valor de timeout_ms que foi passado como uma opção para a visualização. (somente leitura)
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna o número inteiro | nada | O valor de timeout_ms que foi passado como uma opção para a visualização.
44 45 46 |
# Arquivo 'lib/mongo/index/view.rb', linha 44 def operation_timeout_ms @operation_timeout_ms end |
Detalhes do método de instância
#create_many(*models) ➤ Resultado
No MongoDB 3.0.0 e superior, os índices serão criados em paralelo no servidor.
Cria múltiplos índices na collection.
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 |
# Arquivo 'lib/mongo/index/view.rb', linha 216 def create_many(*modelos) modelos = modelos.achatar = {} se modelos && !modelos.último.chave?(:key) = modelos.Pop end Cliente.with_session(@opções.mesclar()) fazer |session| Servidor = próximo_primary(nada, session) Índices = normalize_models(modelos, Servidor) Índices.cada fazer |index| se index[:bucketSize] || index['bucketSize'] Cliente.log_service("Os índices haystack (opção de índice bucketSize) estão obsoletos a partir do MongoDB 4.4") end end especificações = { índices: Índices, db_name: database.name, coll_name: collection.name, sessão: session, commit_quorum: [:commit_quorum], write_concern: write_concern, comment: [:comentário], } Contexto = (operação)::Contexto.Novo( cliente: Cliente, sessão: session, operation_timeouts: operation_timeouts() ) (operação)::CriarÍndice.Novo(especificações).executar, executar(Servidor, contexto: Contexto) end end |
#create_one(keys, options = {}) ➤ Resultado
Observe que as opções listadas podem ser um subconjunto das disponíveis.
Cria um índice na collection.
Consulte a documentação do MongoDB para obter uma lista completa das opções suportadas por versão do servidor .
167 168 169 170 171 172 173 174 175 176 177 178 179 180 |
# Arquivo 'lib/mongo/index/view.rb', linha 167 def create_one(keys, = {}) = .dup = {} se session = @opções[:session] [:session] = session end %i(commit_quorum session comment timeout_ms max_time_ms).cada fazer |chave| se valor = .excluir(chave) [chave] = valor end end create_many({ chave: keys }.mesclar(), ) end |
#drop_all(options = {}) ⇒ Resultado
Solte todos os índices da coleção.
119 120 121 |
# Arquivo 'lib/mongo/index/view.rb', linha 119 def drop_all( = {}) drop_by_name(Index::TUDO, ) end |
#drop_one(name, options = {}) ⇒ Result
Solte um índice por seu nome.
101 102 103 104 |
# Arquivo 'lib/mongo/index/view.rb', linha 101 def drop_one(name, = {}) aumentar Erro::MultiIndexDrop.Novo se name == Index::TUDO drop_by_name(name, ) end |
#cada(&bloco) ➤ Objeto
Iterar sobre todos os índices da collection.
279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 |
# Arquivo 'lib/mongo/index/view.rb', linha 279 def cada(&noum: bloco ; verb: bloquear) session = Cliente.get_session(@opções) Contexto = (operação)::Contexto.Novo( cliente: Cliente, sessão: session, operation_timeouts: operation_timeouts(@opções) ) cursor = read_with_retry_cursor(session, ServerSelector.Principal, auto, contexto: Contexto) fazer |Servidor| send_initial_query(Servidor, session, Contexto) end se block_given? cursor.cada fazer |doc| rendimento doc end mais cursor.to_enum end end |
#get(keys_or_name) ➤ Hash
Método de conveniência para obter informações de índice por um nome ou especificação específica.
265 266 267 268 269 |
# Arquivo 'lib/mongo/index/view.rb', linha 265 def obter(chaves_or_name) find fazer |index| (index[Nome] == chaves_or_name) || (index[Chave] == normalize_keys(chaves_or_name)) end end |
#operation_timeouts(opts = {}) ➤ Hash
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna o valor de timeout_ms definido no nível de operação (se houver) e/ou timeout_ms definido no nível de coleção/ banco de dados/ cliente (se houver).
340 341 342 343 344 345 346 347 348 |
# Arquivo 'lib/mongo/index/view.rb', linha 340 def operation_timeouts(opciona = {}) {}.toque fazer |Resultado| se opciona[:timeout_ms] || operation_timeout_ms Resultado[:operation_timeout_ms] = opciona.excluir(:timeout_ms) || operation_timeout_ms mais Resultado[:inherited_timeout_ms] = collection.timeout_ms end end end |
#timeout_ms ⇒ Integer | nil
O valor de timeout_ms a ser usado para essa operação; especificado como uma opção para a visualização ou herdado da collection.
332 333 334 |
# Arquivo 'lib/mongo/index/view.rb', linha 332 def timeout_ms operation_timeout_ms || collection.timeout_ms end |