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

Ampliado por:
Macroable
Incluido en:
Mongoid::Criteria::Queryable
Definido en:
lib/mongoid/criteria/queryable/aggregable.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 de Macroable

llave

Detalles de atributo de instancias

agregando Indicador de si estamos o no agregando.(Indicador) ⇒ objeto



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

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.



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

def agregando=(Valor)
  @agrupando = Valor
end

#pipelineObjeto (solo lectura)

Devuelve el valor del atributo pipeline.



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

def pipeline
  @pipeline
end

#pipeline The aggregation pipeline.(Elpipeline de agregación.) ⇒ Objeto (solo lectura)



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

attr_reader pipeline

Detalles del método de instancia

#¿agregando?true | false

Hace que el agrupable entre en un estado de agregación. Es decir, en este punto solo se permiten operaciones de agregación.

Ejemplos:

¿Está el agregable agregando?

aggregable.aggregating?

Devuelve:

  • (true | false)

    Si el objeto agregable está agregando.



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

def ¿Agrupando?
  !!@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:



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

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

#Proyecto(operación = nil) ⇒ 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 (encriptada) (valor por defecto: nil)

    La proyección a realizar.

Devuelve:



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

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:

Agrega un "unwind" al pipeline.

aggregable.unwind(:field)

Parámetros:

  • Campo (String | Símbolo)

    El nombre del campo a desplegar.

Devuelve:



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

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