Módulo: Mongoid::Criteria::Includable

Incluído em:
Mongoid::Criteria
Definido em:
lib/mongoid/criteria/includable.rb

Visão geral

Módulo que fornece funcionalidade para analisar definições de inclusão (aninhadas).

Recolhimento do Resumo do método de instância

Detalhes do método de instância

#concerns_load(*relations) ⇒ Critérios

Eager carrega todas as associações fornecidas utilizando agregação $lookup. O comportamento deve ser idêntico a #inclui.

Exemplos:

Ansiosa para carregar as associações fornecidas.

Person.eager_load(:posts, :game)

Parâmetros:

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

    Os nomes da(s) associação(ões) para o carregamento antecipado.

Retorna:



41
42
43
44
45
# Arquivo 'lib/mongoid/criteria/includable.rb', linha 41

def modified_load(*relações)
  extract_includes_list(classe, nada, true, *relações)
  @use_lookup = !incorporado?
  clonar
end

#include(*relations) ➤ Critérios

Observação:

Isso também funcionará para associações incorporadas que fazem referência a outra coleção via requires_to.

Observação:

O carregamento ansioso traz todos os documentos para a memória, então há um ponto ideal para os ganhos de desempenho. Valores de referência internos mostram que o carregamento rápido se torna mais lento em torno de 100k documentos, mas isso dependerá naturalmente do aplicação específico.

Eager carrega todas as associações fornecidas. Carregará todos os documentos no mapa de identidade cujas IDs correspondam com base na query extra para as IDs.

Exemplos:

Ansiosa para carregar as associações fornecidas.

Person.includes(:posts, :game)

Parâmetros:

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

    Os nomes da(s) associação(ões) para o carregamento antecipado.

Retorna:



26
27
28
29
# Arquivo 'lib/mongoid/criteria/includable.rb', linha 26

def inclui(*relações)
  extract_includes_list(classe, nada, false, *relações)
  clonar
end

#inclusões ➤ Array<Mongoid::Association::Relatable>

Obtenha uma lista de critérios que devem ser executados para carregamento rápido.

Retorna:



57
58
59
# Arquivo 'lib/mongoid/criteria/includable.rb', linha 57

def inclusões
  @inclusões ||= []
end

#inclusões=(valor) ➤ Array<Mongoid::Association::Relatable>

Defina as inclusões para os critérios.

Parâmetros:

Retorna:



66
67
68
# Arquivo 'lib/mongoid/criteria/includable.rb', linha 66

def inclusões=(valor)
  @inclusões = valor
end

#use_lookup?verdadeiro | false

Retorna se a agregação $lookup deve ser usada para carregamento rápido.

Retorna:

  • (verdadeiro | falso)

    Se $lookup deve ser usado.



50
51
52
# Arquivo 'lib/mongoid/criteria/includable.rb', linha 50

def use_lookup?
  !!@use_lookup
end