Clase: Mongoid::Association::Eager

Hereda:
Objeto
  • Objeto
Mostrar todo
Definido en:
lib/mongoid/association/eager.rb

Overview

Clase base para las funciones de precarga de carga ansiosa.

Resumen del método de instancia colapsar

Detalles del Constructor

#initialize(associations, docs, use_lookup = false, pipeline = []) ⇒ Base

Instancia la clase de carga anticipada.

Ejemplos:

Cree el nuevo pertenece al precargador de carga optimista.

BelongsTo.new(association, parent_docs)

Parámetros:

  • asociaciones (Array<Mongoid::Association::Relatable>)

    Asociaciones para "eager loading"

  • docs (Array<documento>)

    Documentos para precargar las asociaciones

  • use_lookup (booleano) (por defecto: false)

    Si utilizar la agregación $lookup para carga ansiosa. Esto se utiliza en Criteria#eager_load.

  • pipeline (arreglo<Hash>) (valor por defecto: [])

    La pipeline de agregación a utilizar al usar $lookup para la carga ansiosa.



21
22
23
24
25
26
27
# Archivo 'lib/mongoid/association/eager.rb', línea 21

def inicializar(asociaciones, docs, use_lookup = false, pipeline = [])
  @asociaciones = asociaciones
  @docs = docs
  @grouped_docs = {}
  @use_lookup = use_lookup
  @pipeline = pipeline
end

Detalles del método de instancia

#runArray

Ejecuta el precargador.

Ejemplos:

Precargue las asociaciones en los documentos.

loader.run

Devuelve:

  • (arreglo)

    La lista de documentos proporcionados.



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# Archivo 'lib/mongoid/association/eager.rb', línea 35

def Ejecutar
  @loaded = []

  si @use_lookup
    precargar_con_búsqueda
    @loaded = @docs
    return @loaded.nivelar
  end

  mientras shift_association
    precarga
    @loaded << @docs.collect { |d| d.enviar(@asociación.Nombre) si d.respond_to?(@asociación.Nombre) }
  end
  @loaded.nivelar
end