Módulo: Mongoid::Contextual::aggregable::Mongo

Incluído em:
mongo
Definido em:
lib/mongoid/contextual/aggregable/mongo.rb

Visão geral

Contém comportamento para agregar valores no mongo.

Recolhimento do Resumo do método de instância

Detalhes do método de instância

#agregados(campo) ➤ Hash

Obsoleto.

Obtenha todos os valores agregados para o campo fornecido .

Exemplos:

Obtenha todos os valores agregados.

aggregable.aggregates(:likes)
# => {
#   "count" => 2.0,
#   "max" => 1000.0,
#   "min" => 500.0,
#   "sum" => 1500.0,
#   "avg" => 750.0
# }

Parâmetros:

  • Campo (string | Símbolo)

    O nome do campo .

Retorna:

  • (Hash)

    Um Hash contendo os valores agregados. Se nenhum documento for encontrado, o Hash retornado terá contagem, soma de 0 e max, min, avg de zero.



30
31
32
33
34
35
36
37
# File 'lib/mongoid/contextual/aggregable/mongo.rb', linha 30

def agregados(Campo)
  Resultado = collection.Agregação(gasoduto(Campo), sessão: _session).to_a
  se Resultado.vazio?
    Agregavel::EMPTY_RESULT.dup
  mais
    Resultado.primeiro
  end
end

#avg(campo) ➤ Flutuante

Obsoleto.

Obtenha o valor médio do campo fornecido .

Exemplos:

Obtenha a média de um único campo.

aggregable.avg(:likes)

Parâmetros:

  • Campo (Símbolo)

    O campo para média.

Retorna:

  • (Flutuante)

    A média.



49
50
51
# File 'lib/mongoid/contextual/aggregable/mongo.rb', linha 49

def avg(Campo)
  agregados(Campo)["avg"]
end

#max(campo = nil) ➤ Flutuante | Documento

Obsoleto.

Obtenha o valor máximo do campo fornecido . Se for fornecido um bloco, retornará o documento com o maior valor para o campo}, de acordo com a API enumerável do Ruby.

Exemplos:

Obtenha o máximo de um único campo.

aggregable.max(:likes)

Obtenha o documento com o valor máximo.

aggregable.max do |a, b|
  a.likes <=> b.likes
end

Parâmetros:

  • Campo (Símbolo) (padrão para: nil)

    O campo para o máximo.

Retorna:

  • (Flutuante | Documento)

    O valor máximo ou documento com o valor máximo.



71
72
73
# File 'lib/mongoid/contextual/aggregable/mongo.rb', linha 71

def max(Campo = nada)
  block_given? ? super() : agregados(Campo)["max"]
end

#min(campo = nil) ➤ Flutuante | Documento

Obsoleto.

Obtenha o valor mínimo do campo fornecido. Se for fornecido um bloco, retornará o documento com o menor valor para o campo, de acordo com a API enumerável do Ruby.

Exemplos:

Obtenha o mínimo de um único campo.

aggregable.min(:likes)

Obtenha o documento com o valor mínimo.

aggregable.min do |a, b|
  a.likes <=> b.likes
end

Parâmetros:

  • Campo (Símbolo) (padrão para: nil)

    O campo para min.

Retorna:

  • (Flutuante | Documento)

    O valor mínimo ou documento com o valor mínimo.



93
94
95
# File 'lib/mongoid/contextual/aggregable/mongo.rb', linha 93

def min(Campo = nada)
  block_given? ? super() : agregados(Campo)["min"]
end

#sum(campo = nil) ➤ Flutuante

Obsoleto.

Obtenha o valor da soma do campo fornecido . Se for fornecido um bloco, retornará a soma de acordo com a API enumerável do Ruby.

Exemplos:

Obtenha a soma de um único campo.

aggregable.sum(:likes)

Obtenha a soma do bloco fornecido.

aggregable.sum(&:likes)

Parâmetros:

  • Campo (Símbolo) (padrão para: nil)

    O campo a ser somado.

Retorna:

  • (Flutuante)

    O valor da soma.



111
112
113
# File 'lib/mongoid/contextual/aggregable/mongo.rb', linha 111

def soma(Campo = nada)
  block_given? ? super() : agregados(Campo)["some"] || 0
end