Módulo: Mongoid::Criteria::Includable

Incluido en:
Mongoid::Criteria
Definido en:
lib/mongoid/criteria/includable.rb

Overview

Módulo que proporciona funcionalidad para analizar definiciones de inclusión (anidadas).

Resumen del método de instancia colapsar

Detalles del método de instancia

#eager_load(*relations) ⇒ Criterio

Carga rápidamente todas las asociaciones proporcionadas usando la agregación $lookup. El comportamiento debe ser idéntico al de #includes.

Ejemplos:

Carga de forma anticipada las asociaciones proporcionadas.

Person.eager_load(:posts, :game)

Parámetros:

  • *relaciones ([ Símbolo | Hash ]...)

    Los nombres de las asociaciones que se deben cargar ávidamente.

Devuelve:



41
42
43
44
45
# Archivo 'lib/mongoid/criteria/includable.rb', línea 41

def eager_load(*relaciones)
  extract_includes_list(klass, nulo, true, *relaciones)
  @use_lookup = !¿Incorporado?
  clonar
end

#incluye(*relaciones) ⇒ Criterios

Nota:

Esto también funcionará para asociaciones embebidas que referencian otra colección mediante el atributo belongs_to.

Nota:

La precarga trae todos los documentos a la memoria, por lo que hay un punto óptimo en las ganancias de rendimiento. Las pruebas internas muestran que la carga anticipada se vuelve más lenta alrededor de 100k documentos, pero esto dependerá naturalmente de la aplicación específica.

Carga ávidamente todas las asociaciones proporcionadas. Cargará todos los documentos en el mapa de identidad cuyos ids coincidan según la consulta adicional para los ids.

Ejemplos:

Carga de forma anticipada las asociaciones proporcionadas.

Person.includes(:posts, :game)

Parámetros:

  • *relaciones ([ Símbolo | Hash ]...)

    Los nombres de las asociaciones que se deben cargar ávidamente.

Devuelve:



26
27
28
29
# Archivo 'lib/mongoid/criteria/includable.rb', línea 26

def incluye(*relaciones)
  extract_includes_list(klass, nulo, false, *relaciones)
  clonar
end

#inclusionesarreglo<Mongoid::Association::Relatable>

Obtén una lista de los criterios que se ejecutarán para la carga ávida.

Devuelve:



57
58
59
# Archivo 'lib/mongoid/criteria/includable.rb', línea 57

def inclusiones
  @inclusion ||= []
end

#inclusions=(value) ⇒ arreglo<Mongoid::Association::Relatable>

Establece las inclusiones para los criterios.

Parámetros:

Devuelve:



66
67
68
# Archivo 'lib/mongoid/criteria/includable.rb', línea 66

def inclusiones=(Valor)
  @inclusion = Valor
end

#usar_búsqueda?true | false

Devuelve si se debe usar la agregación $lookup para la carga anticipada.

Devuelve:

  • (true | false)

    Si se debe usar $lookup.



50
51
52
# Archivo 'lib/mongoid/criteria/includable.rb', línea 50

def use_lookup?
  !!@use_lookup
end