Módulo: Mongoid::Criteria::Queryable::aggregable

Estendido por:
macroable
Incluído em:
Mongoid::Criteria::Queryable
Definido em:
lib/mongoid/criteria/queryable/aggregable.rb

Visão geral

Fornece um DSL sobre a criação de comandos de estrutura de agregação .

Recolhimento do Resumo do atributo de instância

Recolhimento do Resumo do método de instância

Métodos incluídos do macroable

chave

Detalhes do atributo da instância

#sinalizador de agregação se estamos ou não agregando.(Bandeira) ➤ Objeto



16
# Arquivo 'lib/mongoid/criteria/queryable/aggregable.rb', linha 16

attr_writer :aggregating

#aggregating=(valor) ➤ Objeto (somente gravação)

Define a agregação do atributo

Parâmetros:

  • valor

    o valor ao qual definir o atributo que está sendo agregado.



16
17
18
# Arquivo 'lib/mongoid/criteria/queryable/aggregable.rb', linha 16

def aggregating=(valor)
  @aggregating = valor
end

#pipelineObject (somente leitura)

Retorna o valor do pipeline de atributo.



13
14
15
# Arquivo 'lib/mongoid/criteria/queryable/aggregable.rb', linha 13

def gasoduto
  @pipeline
end

#pipeline O agregação pipeline.(Theaggregationpipeline.) ➤ Objeto (somente leitura)



13
# Arquivo 'lib/mongoid/criteria/queryable/aggregable.rb', linha 13

attr_reader :pipeline

Detalhes do método de instância

#agregando?verdadeiro | false

O aggregation entra em um estado de agregação . Ou seja, somente operações de agregação são permitidas neste ponto .

Exemplos:

O aggregation está agregando?

aggregable.aggregating?

Retorna:

  • (verdadeiro | falso)

    Se o aggregation estiver agregando.



25
26
27
# Arquivo 'lib/mongoid/criteria/queryable/aggregable.rb', linha 25

def agregando?
  !!@aggregating
end

#grupo(operação) ➤ Agregado

Adicione uma operação de grupo ($group) ao agregação pipeline.

Exemplos:

Adicione uma operação de grupo sendo detalhada.

aggregable.group(count: { "$sum" => 1 }, max: { "$max" => "likes" })

Adicione uma operação de grupo utilizando atalhos de símbolo.

aggregable.group(:count.sum => 1, :max.max => "likes")

Parâmetros:

  • operação (Hash)

    A operação do grupo.

Retorna:



40
41
42
43
44
# Arquivo 'lib/mongoid/criteria/queryable/aggregable.rb', linha 40

def grupo, grupo(operação)
  Aggregation(operação) fazer |gasoduto|
    gasoduto.grupo, grupo(operação)
  end
end

#projeto(operation = nil) ➤ Agregable

Adicione uma projeção ($project) ao aggregation pipeline.

Exemplos:

Adicione uma projeção ao pipeline.

aggregable.project(author: 1, name: 0)

Parâmetros:

  • operação (Hash) (padrão para: nil)

    A projeção a ser feita.

Retorna:



62
63
64
65
66
# Arquivo 'lib/mongoid/criteria/queryable/aggregable.rb', linha 62

def projeto, projeto(operação = nada)
  Aggregation(operação) fazer |gasoduto|
    gasoduto.projeto, projeto(operação)
  end
end

#unwind(campo) ➤ Agregable

Adicione um desenrolamento ($unwind) ao pipeline de agregação.

Exemplos:

Adicione um unwind ao pipeline.

aggregable.unwind(:field)

Parâmetros:

  • Campo (string | Símbolo)

    O nome do campo a ser desenrolado.

Retorna:



76
77
78
79
80
# Arquivo 'lib/mongoid/criteria/queryable/aggregable.rb', linha 76

def Unwind(Campo)
  Aggregation(Campo) fazer |gasoduto|
    gasoduto.Unwind(Campo)
  end
end