Classificação: Mongo::Collection::View

Herda:
Objeto
  • Objeto
mostrar tudo
Estendido por:
Encaminhável
Inclui:
Enumerável, Explicável, Imutável, Iterável, Legível, Gravável
Definido em:
lib/mongo/collection/view.rb,
lib/mongo/collection/view/iterable.rb,
lib/mongo/collection/view/readable.rb,
lib/mongo/collection/view/writable.rb,
lib/mongo/ collection/view/immutable.rb,
lib/mongo/collection/view/map_reduce.rb,
lib/mongo/collection/view/ agregação.rb,
lib/mongo/collection/view/explainable.rb,
lib/mongo/collection/ view/change_stream.rb,
lib/mongo/collection/view/builder/map_reduce.rb,
lib/mongo/collection/view/builder/ agregação.rb,
lib/mongo/collection/view/ agregação/behavior.rb,
lib/ mongo/collection/view/change_stream/retryable.rb
mais...

Visão geral

Observação:

A API View é semipública.

Representação de uma query e opções para produzir um conjunto de resultados de documentos.

Um View pode ser modificado utilizando ajudantes. Os auxiliares podem ser encadeados, pois cada um retorna um View se argumentos forem fornecidos.

A mensagem de query é enviada ao servidor quando um "terminator" é chamado. Por exemplo, quando #each é chamado em um View, um objeto Cursor é criado, que envia a query para o servidor.

Um View não é criado diretamente por um usuário. Em vez disso, View cria um View quando uma operação CRUD é chamada e a retorna ao usuário para interação.

Desde:

  • 2.0.0

Definido sob namespace

Módulos: Construtor, Explainable, Imutable, Iterable, Readable, Gravável Classes: Aggregation, ChangeStream, MapReduce

Resumo constante

Constantes incluídas de Gravável

Gravável::ARRAY_FILTERS

Constantes incluídas de Explainable

Explicável::ALL_PLANS_EXECUTION, Explicável:: EXECUTION_STATS , Explicável::QUERY_PLANNER

Recolhimento do Resumo do atributo de instância

Atributos incluídos do Mongo::CursorHost

#cursor, #timeout_mode

Atributos incluídos no Imutable

#options

Recolhimento do Resumo do método de instância

Métodos incluídos do Gravável

. _ _ _ _ _ _ _

Métodos incluídos no Explainable

#explain

Métodos incluídos no Readable

#aggregate , #allow_disk_use , #allow_partial_results , #await_data , #batch_size , #comment , #count , #count_documents , #cursor_type , #distinct , #estimated_document_count , #hint , #limit , #map_reduce , #max_await_time_ms , #max_scan , #max_time_ms .

Métodos incluídos do Iterable

#close_query, #each

Métodos incluídos do Mongo::CursorHost

#validate_timeout_mode!

Detalhes do construtor

#inicializar(coleção, filtro = {}, opções = {}) ➤ Visualizar

Cria um novo View.

Exemplos:

Encontre todos os usuários chamados Emily.

View.new(collection, {:name => 'Emily'})

Encontre todos os usuários chamados Emy pulando 5 e retornando 10.

View.new(collection, {:name => 'Emily'}, :skip => 5, :limit => 10)

Encontre todos os usuários chamados Emilly usando uma preferência de leitura específica.

View.new(collection, {:name => 'Emily'}, :read => :secondary_preferred)

Parâmetros:

  • collection (Collection)

    O Collection para fazer query.

  • filtro, filtro (Hash) (padrão para: {})

    O filtro de query.

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

    As opções de query adicionais.

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

  • :allow_disk_use (verdadeiro, falso)

    When set to true, the server can write temporary data to disk while executing the find operation. Esta opção só está disponível nas versões 4.4 e mais recentes do MongoDB Server.

  • :batch_size (Inteiro)

    O número de documentos a serem devolvidos em cada resposta do MongoDB.

  • :collation (Hash)

    O agrupamento a ser usado.

  • :comentário (string)

    Associe um comentário à query.

  • :cursor_type (:tailable, :tailable_await)

    O tipo de cursor a ser usado.

  • :explicar (Hash)

    Execute uma explicação com as opções de explicação fornecidas (as opções conhecidas são :verbose e :verbosity) em vez de uma localização.

  • :hint (Hash)

    Substitua a seleção de índice padrão e force o MongoDB a usar um índice específico para a query.

  • :limit (Inteiro)

    Número máximo de documentos a retornar.

  • :max_scan (Inteiro)

    Restringir a query para digitalizar apenas o número especificado de documentos. Use para evitar que as queries sejam executadas por muito tempo. Obsoleto a partir da versão 4.0 do servidor MongoDB .

  • :projection (Hash)

    Os campos a incluir ou excluir nos documentos devolvidos.

  • :read (Hash)

    A preferência de leitura a ser usada para a query. Se nenhuma for fornecida, a preferência de leitura padrão da coleção será usada.

  • :read_concern (Hash)

    A preocupação de leitura a ser usada para a consulta.

  • :show_disk_loc (verdadeiro | falso)

    Retorne informações de localização do disco como um campo em cada documento.

  • :skip (Inteiro)

    O número de documentos a ignorar.

  • :snapshot (verdadeiro | falso)

    Impede a devolução de um documento mais de uma vez. Obsoleto a partir da versão 4.0 do servidor MongoDB .

  • :sort (Hash)

    Os pares de chave e direção usados para classificar os resultados.

  • :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 da coleção, do banco de dados ou do cliente.

Desde:

  • 2.0.0

[Ver fonte]

169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
# Arquivo 'lib/mongo/collection/view.rb', linha 169

def inicializar(collection, filtro, filtro = {}, opções = {})
  validate_doc!(filtro, filtro)

  filtro, filtro = BSON::Documento.Novo(filtro, filtro)
  opções = BSON::Documento.Novo(opções)

  @collection = collection
  @operation_timeout_ms = opções.excluir(:timeout_ms)

  validate_timeout_mode!(opções)

  # É quando os usuários passam $query no filtro e outros modificadores
  # ao lado?
  Query = filtro, filtro.excluir(:$query)
  # Isso faz com que os modificadores contenham o filtro se o filtro não for
  # fornecido via $query , mas como chaves de nível superior, presumivelmente
  # o código downstream ignora as chaves não modificadoras nos modificadores?
  modifiers = filtro, filtro.mesclar(opções.excluir(:modifiers) || {})
  @filter = (Query || filtro, filtro).congelar
  @opções = (operação)::encontrar::Construtor::Modifiers.map_driver_options(modifiers).mesclar!(opções).congelar
end

Detalhes do atributo da instância

#collectionCollection (somente leitura)

Retorna Collection para query.

Retorna:

Desde:

  • 2.0.0


56
57
58
# Arquivo 'lib/mongo/collection/view.rb', linha 56

def collection
  @collection
end

#filterHash (somente leitura) Também conhecido como: seletor

Retorna o filtro de query.

Retorna:

  • (Hash)

    O filtro de query.

Desde:

  • 2.0.0


59
60
61
# Arquivo 'lib/mongo/collection/view.rb', linha 59

def filtro, filtro
  @filter
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


81
82
83
# Arquivo 'lib/mongo/collection/view.rb', linha 81

def operation_timeout_ms
  @operation_timeout_ms
end

Detalhes do método de instância

#==(outro) ➤ true, false Também conhecido como: eql?

Compare dois objetos View .

Exemplos:

Compare a visualização com outro objeto.

view == other

Retorna:

  • (verdadeiro, falso)

    Igual se a collection, o filtro e as opções de dois View corresponderem.

Desde:

  • 2.0.0

[Ver fonte]

92
93
94
95
96
97
# Arquivo 'lib/mongo/collection/view.rb', linha 92

def ==(Outro)
  Método false a menos que Outro.is_a?(Vista)
  collection == Outro.collection &&
      filtro, filtro == Outro.filtro, filtro &&
      opções == Outro.opções
end

#hashinteiro

Um valor de hash para o View composto pelo namespace da coleção, hash das opções e hash do filtro.

Exemplos:

Obtenha o valor de hash.

view.hash

Retorna:

  • (Inteiro)

    Um valor de hash do objeto View .

Desde:

  • 2.0.0

[Ver fonte]

109
110
111
# Arquivo 'lib/mongo/collection/view.rb', linha 109

def hash
  [ collection.namespace, opções.hash, filtro, filtro.hash ].hash
end

#inspecionarstring

Obtenha uma representação de string legível por humanos de View.

Exemplos:

Faça a inspeção.

view.inspect

Retorna:

  • (string)

    Uma representação de string de uma instância do View .

Desde:

  • 2.0.0

[Ver fonte]

207
208
209
210
# Arquivo 'lib/mongo/collection/view.rb', linha 207

def inspecionar
  "#<Mongo::Collection::View:0x#{object_id} namespace='#{collection.namespace}'" +
      " @filter=#{filter.to_s} @options=#{options.to_s}>"
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).

Retorna:

  • (Hash)

    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).

Desde:

  • 2.0.0

[Ver fonte]

228
229
230
231
232
233
234
235
236
# Arquivo 'lib/mongo/collection/view.rb', linha 228

def operation_timeouts(opciona = {})
  {}.toque fazer |Resultado|
    se opciona[:timeout_ms] || operation_timeout_ms
      Resultado[:operation_timeout_ms] = opciona[:timeout_ms] || operation_timeout_ms
    mais
      Resultado[:inherited_timeout_ms] = collection.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 da collection.

Retorna:

  • (Inteiro | nil)

    os timeout_ms para esta operação

Desde:

  • 2.0.0

[Ver fonte]

195
196
197
# Arquivo 'lib/mongo/collection/view.rb', linha 195

def timeout_ms
  operation_timeout_ms || collection.timeout_ms
end

#write_concern ➤ Mongo::WriteConcern

Obtenha a preocupação de gravação neste View.

Exemplos:

Obtenha a preocupação de gravação.

view.write_concern

Retorna:

Desde:

  • 2.0.0

[Ver fonte]

220
221
222
# Arquivo 'lib/mongo/collection/view.rb', linha 220

def write_concern
  Escreva preocupação.obter(opções[:write_concern] || opções[:write] || collection.write_concern)
end