Classe: Mongoid::Association::Eager

Herda:
Objeto
  • Objeto
mostrar tudo
Definido em:
lib/mongoid/association/eager.rb

Visão geral

classe de base para funções de pré-carga de carga ávida.

Recolhimento do Resumo do método de instância

Detalhes do construtor

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

Instancie a classe de carga ávida .

Exemplos:

Crie o novo pertence ao pré-carregador de carga ávida.

BelongsTo.new(association, parent_docs)

Parâmetros:

  • Associações (Array <Mongoid::Association::Relatable>)

    Associações à carga ávida

  • Docs (Array <Document>)

    Documentos para pré-carregar as associações

  • use_lookup (Booleano) (padrão para: false)

    Se deve usar a agregação $lookup para carregamento rápido. Isso é usado em Criteria#eager_load.

  • gasoduto (Array<Hash>) (padrão para: [])

    O pipeline de agregação a ser usado ao usar $lookup para carregamento antecipado.



21
22
23
24
25
26
27
# Arquivo 'lib/mongoid/association/eager.rb', linha 21

def inicializar(Associações, Docs, use_lookup = false, gasoduto = [])
  @associations = Associações
  @docs = Docs
  @grouped_docs = {}
  @use_lookup = use_lookup
  @pipeline = gasoduto
end

Detalhes do método de instância

#runArray

Execute o pré-carregador.

Exemplos:

Pré-carregue as associações nos documentos.

loader.run

Retorna:

  • (Array)

    A lista de documentos fornecidos.



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

def EXECUTAR
  @loaded = []

  se @use_lookup
    preload_with_lookup
    @loaded = @docs
    Método @loaded.achatar
  end

  enquanto shift_association
    pré-carregar
    @loaded << @docs.coletar { |d| d.enviar(@association.name) se d.respond_to?(@association.name) }
  end
  @loaded.achatar
end