Class: Mongo::Database::View

Herda:
Objeto
  • Objeto
mostrar tudo
Estendido por:
Encaminhável
Inclui:
Enumerável, Cursor::NonTailable, CursorHost, Retryable
Definido em:
lib/mongo/database/view.rb

Visão geral

Uma classe que representa uma visualização de um banco de dados.

Desde:

  • 2.0.0

Recolhimento do Resumo do atributo de instância

Atributos incluídos do CursorHost

#cursor, #timeout_mode

Recolhimento do Resumo do método de instância

Métodos incluídos do Cursor::NonTailable

#cursor_type, #timeout_mode

Métodos incluídos do CursorHost

#validate_timeout_mode!

Métodos incluídos no Retryable

#read_worker, #select_server, #with_overload_retry, #write_worker

Detalhes do construtor

#initialize(database, options = {}) ⇒ View

Crie a nova visualização do banco de dados.

Exemplos:

Crie a nova visualização do banco de dados.

Database::View.new(database)

Parâmetros:

  • database (Banco de dados)

    O banco de dados.

  • opções (Hash) (padrão para: {})

    As opções para configurar a visualização.

Hash de opções (opções):

  • :timeout_mode (:cursor_Lifetime |:iteration)

    Como interpretar :timeout_ms (se ele se aplica à vida útil do cursor ou por iteração).

  • :timeout_ms (Inteiro)

    O tempo limite da operação em milissegundos. Deve ser um número inteiro não negativo. Um valor explícito de 0 significa infinito. O valor padrão não está definido, o que significa que o valor é herdado do banco de dados ou do cliente.

Desde:

  • 2.0.0



143
144
145
146
147
148
149
150
151
152
# Arquivo 'lib/mongo/ banco de dados/view.rb', linha 143

def inicializar(database, opções = {})
  @database = database
  @operation_timeout_ms = opções.excluir(:timeout_ms)

  validate_timeout_mode!(opções)

  @batch_size = nada
  @limit = nada
  @collection = @database[Database::Comando]
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 listCollections.

Retorna:

  • (Inteiro)

    batch_size O tamanho do lote de resultados ao enviar o comando listCollections.

Desde:

  • 2.0.0



38
39
40
# Arquivo 'lib/mongo/ banco de dados/view.rb', linha 38

def batch_size
  @batch_size
end

#collectionCollection (somente leitura)

Retorna a collection A collection de comandos.

Retorna:

  • (Collection)

    collection A collection de comandos.

Desde:

  • 2.0.0



44
45
46
# Arquivo 'lib/mongo/ banco de dados/view.rb', linha 44

def collection
  @collection
end

#databaseObject (only read)

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.

Desde:

  • 2.0.0



155
156
157
# Arquivo 'lib/mongo/ banco de dados/view.rb', linha 155

def database
  @database
end

#limiteinteiro (somente leitura)

Retorna limite O limite ao enviar um comando.

Retorna:

  • (Inteiro)

    limite O limite ao enviar um comando.

Desde:

  • 2.0.0



41
42
43
# Arquivo 'lib/mongo/ banco de dados/view.rb', linha 41

def limit
  @limit
end

#operation_timeout_msInteiro | 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.

Retorna:

  • (Inteiro | nil | O valor de timeout_ms que foi passado como uma opção para a visualização.)

    Inteiro | nada | O valor de timeout_ms que foi passado como uma opção para a visualização.

Desde:

  • 2.0.0



161
162
163
# Arquivo 'lib/mongo/ banco de dados/view.rb', linha 161

def operation_timeout_ms
  @operation_timeout_ms
end

Detalhes do método de instância

#aggregation(pipeline, options = {}) ➤ Collection::View::aggregation

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.

Execute uma agregação na visualização do banco de dados.

Exemplos:

Documentos agregados.

view.aggregate([
  { "$listLocalSessions" => {} }
])

Parâmetros:

  • gasoduto (Array<Hash>)

    O pipeline de agregação .

  • opções (Hash) (padrão para: {})

    As opções de aggregation.

Retorna:

Desde:

  • 2.10.0



177
178
179
# Arquivo 'lib/mongo/ banco de dados/view.rb', linha 177

def Agregação(gasoduto, opções = {})
  collection::Vista::Agregação.Novo(auto, gasoduto, opções)
end

#collection_names(opções = {}) ➤ Array<String>

Observação:

O conjunto de nomes de collection retornados depende da versão do servidor MongoDB que atende à solicitação.

Obtenha todos os nomes das coleções que não são do sistema no banco de banco de dados.

See https://mongodb.com/pt-br/docs/manual/reference/command/listCollections/
for more information and usage.

Parâmetros:

  • opções (Hash) (padrão para: {})

    Opções para o comando listCollections.

Hash de opções (opções):

  • :batch_size (Inteiro)

    O tamanho do lote para os resultados retornados do comando listCollections.

  • :filter (Hash)

    Um filtro para as collections retornadas.

  • : authorized_collections (verdadeiro, falso)

    Um sinalizador, quando definido como verdadeiro, permite a um usuário sem o privilégio necessário executar o comando quando o controle de acesso é imposto.

  • :comentário (Objeto)

    Um comentário fornecido pelo usuário para anexar a este comando.

  • :timeout_ms (Inteiro)

    O tempo limite da operação em milissegundos. Deve ser um número inteiro não negativo. Um valor explícito de 0 significa infinito. O valor padrão não está definido, o que significa que o valor é herdado do banco de dados ou do cliente.

  • :session (Sessão)

    A sessão a ser usada.

Retorna:

  • (Array<String>)

    Os nomes de todas as coleções que não são do sistema.

Desde:

  • 2.0.0



75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# Arquivo 'lib/mongo/ banco de dados/view.rb', linha 75

def collection_names(opções = {})
  @batch_size = opções[:batch_size]
  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, opções.mesclar(name_only: true))
  end

  cursor.map { |informações| informações['nome'] }
        .rejeitar { |name| name.start_with?('.') || name.incluir?('$') }
end

#list_collections(options = {}) ➤ Array<Hash>

Observação:

O conjunto de coleções retornadas e o esquema do hash de informações por coleção depende da versão do servidor MongoDB que atende à solicitação.

Obtenha informações sobre todas as coleções no banco de dados.

Exemplos:

Obtenha informações sobre cada coleção.

database.list_collections

Parâmetros:

  • opções (Hash) (padrão para: {})

Hash de opções (opções):

  • :filter (Hash)

    Um filtro para as collections retornadas.

  • :name_only (verdadeiro, falso)

    Indica se o comando deve retornar apenas os nomes e o tipo da collection/visualização ou se deve retornar o nome e outras informações

  • : authorized_collections (verdadeiro, falso)

    Um sinalizador, quando definido como true e usado com nameOnly: true, que permite a um usuário sem o privilégio necessário executar o comando quando o controle de acesso é imposto

    Consulte https://mongodb.com/pt-br/docs/manual/reference/command/listCollections/ para obter mais informações e uso.

  • :session (Sessão)

    A sessão a ser usada.

  • :deserialize_as_bson (Booleano)

    Se deve desserializar esta mensagem usando BSON types em vez de tipos Ruby nativos sempre que possível.

Retorna:

  • (Array<Hash>)

    Informações para cada collection no banco de dados.

Desde:

  • 2.0.5



121
122
123
124
# Arquivo 'lib/mongo/ banco de dados/view.rb', linha 121

def list_collections(opções = {})
  session = Cliente.get_session(opções)
  collections_info(session, ServerSelector.Principal, opções)
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).

Retorna:

  • (Hash)

    Valor de timeout_ms definido no nível de operação (se houver).

Desde:

  • 2.0.0



192
193
194
195
196
197
198
199
200
# Arquivo 'lib/mongo/ banco de dados/view.rb', linha 192

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] = database.timeout_ms
    end
  end
end

#timeout_msInteger | nil

O valor de timeout_ms a ser usado para essa operação; especificado como uma opção para a visualização ou herdado do banco de dados.

Retorna:

  • (Inteiro | nil)

    os timeout_ms para esta operação

Desde:

  • 2.0.0



185
186
187
# Arquivo 'lib/mongo/ banco de dados/view.rb', linha 185

def timeout_ms
  operation_timeout_ms || database.timeout_ms
end