Módulo: Mongoid::Criteria::Queryable::Aggregable

Ampliado por:
Macrosable
Incluido en:
Mongoid::Criteria::Queryable
Definido en:
lib/mongoid/criterios/consultable/agregable.rb

Overview

Proporciona un DSL para la elaboración de comandos del marco de agregación.

Resumen de atributos de la instancia colapsar

Resumen del método de instancia colapsar

Métodos incluidos en Macroable

llave

Detalles de los atributos de instancia

#agregando Bandera que indica si estamos agregando o no.(Bandera) ⇒ Objeto



16
# Archivo 'lib/mongoid/criteria/queryable/aggregable.rb', línea 16

attr_writer agrupando

#aggregating=(valor) ⇒ Objeto (solo escritura)

Establece el atributo de agrupación

Parámetros:

  • Valor

    el valor para establecer el atributo de agregación.



16
17
18
# Archivo 'lib/mongoid/criteria/queryable/aggregable.rb', línea 16

def agregando=(Valor)
  @agrupando = Valor
end

#pipelineObjeto (solo lectura)

Devuelve el valor del atributo pipeline.



13
14
15
# Archivo 'lib/mongoid/criteria/queryable/aggregable.rb', línea 13

def pipeline
  @pipeline
end

#pipeline La canalización de agregación.(Theaggregationpipeline.) ⇒ Objeto (solo lectura)



13
# Archivo 'lib/mongoid/criteria/queryable/aggregable.rb', línea 13

attr_reader pipeline

Detalles del método de instancia

#¿agregando?true | false

¿El objeto agregable ha entrado en estado de agregación? Es decir, ¿solo se permiten operaciones de agregación en este punto?

Ejemplos:

¿Está el agregable agregando?

aggregable.aggregating?

Devuelve:

  • (true | false)

    Si el objeto agregable está agregando.



25
26
27
# Archivo 'lib/mongoid/criteria/queryable/aggregable.rb', línea 25

def ¿agregando?
  !!@agrupando
end

#grupo(operación) ⇒ Agregable

Agregar una operación de grupo ($group) a la pipeline de agregación.

Ejemplos:

Añadir una operación de grupo siendo detallado.

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

Agregue una operación de grupo utilizando atajos de símbolos.

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

Parámetros:

  • operación (encriptada)

    La operación de agrupación.

Devuelve:



40
41
42
43
44
# Archivo 'lib/mongoid/criteria/queryable/aggregable.rb', línea 40

def group(operación)
  Agregación(operación) hacer |pipeline|
    pipeline.group(operación)
  end
end

#proyecto(operación = nula) ⇒ Agregable

Agregue una proyección ($project) al pipeline de agregación.

Ejemplos:

Agrega una proyección al pipeline.

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

Parámetros:

  • operación (Hash) (predeterminado: nulo)

    La proyección a realizar.

Devuelve:



62
63
64
65
66
# Archivo 'lib/mongoid/criteria/queryable/aggregable.rb', línea 62

def Proyecto(operación = nulo)
  Agregación(operación) hacer |pipeline|
    pipeline.Proyecto(operación)
  end
end

#unwind(campo) ⇒ Aggregable

Añade una desagregación ($unwind) a la pipeline de agregación.

Ejemplos:

Añade un desenrollado a la tubería.

aggregable.unwind(:field)

Parámetros:

  • Campo (String | Símbolo)

    El nombre del campo a desplegar.

Devuelve:



76
77
78
79
80
# Archivo 'lib/mongoid/criteria/queryable/aggregable.rb', línea 76

def unwind(Campo)
  Agregación(Campo) hacer |pipeline|
    pipeline.unwind(Campo)
  end
end