Módulo: Mongoid::Contextual::Aggregable::Memory
- Incluido en:
- Memoria
- Definido en:
- lib/mongoid/contextual/agregable/memoria.rb
Overview
Contiene comportamiento para agregar valores en la memoria.
Resumen del método de instancia colapsar
-
#agregados(campo) ⇒ Hash
Obten todos los valores agregados para el campo proporcionado.
-
#avg(campo) ⇒ Numérico
Obtenga el valor promedio del campo proporcionado.
-
# máx. (campo = nulo) ⇒ Numérico |Documento
Obtenga el valor máximo del campo proporcionado.
-
#min(campo = nil) ⇒ Numérico | documento
Obtenga el valor mínimo del campo proporcionado.
-
#suma(campo = nulo) ⇒ Numérico
Obtén el valor de suma del campo proporcionado.
Detalles del método de instancia
#agrega(campo) ⇒ Hash
Obtener todos los valores agregados para el campo proporcionado. Proporcionado para la coherencia de la interfaz con Aggregable::Mongo.
18 19 20 21 22 |
# Archivo 'lib/mongoid/contextual/aggregable/memory.rb', línea 18 def agregados(Campo) %w(count suma promedio min máximo).each_with_object({}) hacer |Método, hash| hash[Método] = enviar(Método, Campo) end end |
#avg(campo) ⇒ Numeric
Obtenga el valor promedio del campo proporcionado.
32 33 34 35 36 37 38 |
# Archivo 'lib/mongoid/contextual/aggregable/memory.rb', línea 32 def promedio(Campo) total = count { |doc| !doc.enviar(Campo).nil? } return nulo a menos que total > 0 total = total.to_f si total.is_a?(entero) suma(Campo) / total end |
#max(field = nil) ⇒ Numérico | Documento
Obtén el valor máximo del campo proporcionado. Si se proporciona un bloque, devolverá el Documento con el mayor valor para el campo, de acuerdo con la API Enumerable de Ruby.
56 57 58 59 60 |
# Archivo 'lib/mongoid/contextual/aggregable/memory.rb', línea 56 def máximo(Campo = nulo) return super() si ¿block_given? aggregate_by(Campo, :máximo) end |
#min(campo = nil) ⇒ Numérico | Documento
Obtén el valor mínimo del campo proporcionado. Si se proporciona un bloque, devolverá el Documento con el valor más pequeño para el campo, de acuerdo con la API enumerable de Ruby.
78 79 80 81 82 |
# Archivo 'lib/mongoid/contextual/aggregable/memory.rb', línea 78 def min(Campo = nulo) return super() si ¿block_given? aggregate_by(Campo, :min) end |
#suma(campo = nil) ⇒ Numérico
Obtenga el valor sumado del campo proporcionado. Si se proporciona un bloque, devolverá la suma conforme a la API de enumerables de Ruby.
97 98 99 100 101 |
# Archivo 'lib/mongoid/contextual/aggregable/memory.rb', línea 97 def suma(Campo = nulo) return super(Campo || 0) si ¿block_given? aggregate_by(Campo, :suma) || 0 end |