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

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

Overview

Proporciona un DSL en torno a la creación de comandos de marco de agregación.

Colapso delresumen de atributos de instancia

Colapso del resumen del método de instancia

Métodos incluidos en Macroable

clave

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

escritor de atributos :agregando

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

Establece la agregación de atributos

Parámetros:

  • valor

    el valor al que se establecerá la agregación del atributo.



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

def agregando=(valor)
  @agregando = 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

lector de atributos :tubería

Detalles del método de instancia

#¿agregando?verdadero | falso

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

Ejemplos:

¿Lo agregable es agregante?

aggregable.aggregating?

Devuelve:

  • (verdadero | falso)

    Si lo agregable es agregante.



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

def ¿agregando?
  !!@agregando
end

#grupo(operación) ⇒ Agregable

Agregue una operación de grupo ($group) al flujo de agregación.

Ejemplos:

Añade una operación de grupo que sea detallada.

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

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

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

Parámetros:

  • operación (Hash)

    La operación de grupo.

Devuelve:

  • (Agregable)

    El agregable.



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) a la canalización de agregación.

Ejemplos:

Añade una proyección a la tubería.

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

Parámetros:

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

    La proyección a realizar.

Devuelve:

  • (Agregable)

    El agregable.



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

#desenrollar(campo) ⇒ Agregable

Agregue un desenrollado ($unwind) a la canalización de agregación.

Ejemplos:

Añade un desenrollado a la tubería.

aggregable.unwind(:field)

Parámetros:

  • Campo (Cadena | Símbolo)

    El nombre del campo a desenrollar.

Devuelve:

  • (Agregable)

    El agregable.



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