Classe: Mongo::Collection::View::aggregation

Herda:
Objeto
  • Objeto
mostrar tudo
Estendido por:
Encaminhável
Inclui:
Enumerável, Explicável, Imutável, Iterável, Registável, Repetível
Definido em:
build/ruby-driver-v2.19/lib/mongo/collection/view/aggregation.rb

Visão geral

Fornece comportamento em torno de um pipeline de agregação em uma visualização de coleção.

Desde:

  • 2.0.0

Subclasses conhecidas diretas

Change stream

Colapsode resumo constante

REVIAR =
Obsoleto.

A mensagem de redirecionamento.

Desde:

  • 2.1.0

'Redirecionando a operação de agregação para o servidor principal.'.congelar

Constantes incluídas do Loggable

Loggable::Prefix

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 no Iterable

#cursor

Atributos incluídos no Imutable

#options

Recolhimento do Resumo do método de instância

Métodos incluídos no Retryable

#read_worker, #select_server, #write_worker

Métodos incluídos no Loggable

#log_debug, #log_error, #log_fatal, #log_info, #log_WARN, #logger

Métodos incluídos do Iterable

#close_query, #each

Detalhes do construtor

#inicializar(visualização, pipeline, opções = {}) ➤ Agregação

Inicialize a aggregation para a visualização, pipeline e opções de collection fornecidas.

Exemplos:

Crie a nova visualização de agregação.

Aggregation.view.new(view, pipeline)

Parâmetros:

  • vista (Collection::View)

    A visualização da collection.

  • gasoduto (Array<Hash>)

    O pipeline de operações.

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

    As opções de aggregation.

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

  • :allow_disk_use (verdadeiro, falso)

    Defina como verdadeiro se o uso do disco for permitido durante a agregação.

  • :batch_size (Inteiro)

    O número de documentos a serem devolvidos por lote.

  • :bypass_document_validation (verdadeiro, falso)

    Se deve ou não ignorar a validação em nível de documento .

  • :collation (Hash)

    O agrupamento a ser usado.

  • :comentário (Objeto)

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

  • :hint (string)

    O índice a ser usado para a agregação.

  • :let (Hash)

    Mapeamento de variáveis a serem usadas no pipeline. Consulte a documentação do servidor para obter detalhes.

  • :max_time_ms (Inteiro)

    A quantidade máxima de tempo em milissegundos para permitir a execução da agregação .

  • :use_cursor (verdadeiro, falso)

    Indica se o comando solicitará que o servidor forneça resultados usando um cursor. Observe que, a partir da versão do servidor 3.6, as aggregations sempre fornecem resultados usando um cursor e, portanto, essa opção não é válida.

  • :session (Sessão)

    A sessão a ser usada.

Desde:

  • 2.0.0



97
98
99
100
101
102
103
104
# File 'build/ruby-driver-v2.19/lib/mongo/collection/view/aggregation.rb', linha 97

def inicializar(vista, gasoduto, opções = {})
  @view = vista
  @pipeline = gasoduto.dup
  a menos que mongo.quebrado_view_aggregate || vista.filtro, filtro.vazio?
    @pipeline.unshift(:$match => vista.filtro, filtro)
  end
  @opções = BSON::Documento.Novo(opções).congelar
end

Detalhes do atributo da instância

#pipelineArray<Hash> (somente leitura)

Retorna pipeline O aggregation pipeline.

Retorna:

  • (Array<Hash>)

    pipeline O aggregation pipeline.

Desde:

  • 2.0.0



37
38
39
# File 'build/ruby-driver-v2.19/lib/mongo/collection/view/aggregation.rb', linha 37

def gasoduto
  @pipeline
end

#viewVisualizar (somente leitura)

Retorna a visualização A visualização da collection.

Retorna:

  • (Visualizar)

    visualização A visualização da collection.

Desde:

  • 2.0.0



35
36
37
# File 'build/ruby-driver-v2.19/lib/mongo/collection/view/aggregation.rb', linha 35

def vista
  @view
end

Detalhes do método de instância

#allow_disk_use(value = nil) ➤ true, ...

Defina como verdadeiro se o uso do disco for permitido durante a agregação.

Exemplos:

Definir sinalizador de uso de disco.

aggregation.allow_disk_use(true)

Parâmetros:

  • valor (verdadeiro, falso) (padrão para: nil)

    O valor do sinalizador.

Retorna:

  • (true, false, Aggregation)

    A agregação se um valor foi definido ou o valor se usado como getter.

Desde:

  • 2.0.0



62
63
64
# File 'build/ruby-driver-v2.19/lib/mongo/collection/view/aggregation.rb', linha 62

def allow_disk_use(valor = nada)
  configure(:allow_disk_use, valor)
end

#explainHash

Obtenha o plano de explicação para a aggregation.

Exemplos:

Obtenha o plano de explicação para a aggregation.

aggregation.explain

Retorna:

  • (Hash)

    O plano de explicação.

Desde:

  • 2.0.0



114
115
116
# File 'build/ruby-driver-v2.19/lib/mongo/collection/view/aggregation.rb', linha 114

def explicar
  auto.classe.Novo(vista, gasoduto, opções.mesclar(explicar: true)).primeiro
end

#escrever?Booleano

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.

Se esta agregação escreverá seu resultado em uma coleção do banco de dados.

Retorna:

  • (Booleano)

    Se a aggregation escreverá seu resultado em uma collection.

Desde:

  • 2.0.0



124
125
126
# File 'build/ruby-driver-v2.19/lib/mongo/collection/view/aggregation.rb', linha 124

def escrever?
  gasoduto.algum? { |op| op.chave?('$out') || op.chave?(:$out) || op.chave?('$merge') || op.chave?(:$merge) }
end