Módulo: Mongoid::Criteria::Findable
- Incluído em:
- Mongoid::Criteria
- Definido em:
- lib/mongoid/criteria/findable.rb
Visão geral
Módulo Mixin incluído no Mongoid::Criteria que adiciona a capacidade de localizar documento por ID.
Recolhimento do Resumo do método de instância
-
#execute_or_raise(ids, multi) ➤ Documento | Array<Document>
Execute os critérios ou gere um erro se nenhum documento for encontrado.
-
#encontrar(*args) ➤ Documento | Array<Document>
Encontre o(s) documento(s) correspondente(s) nos critérios para a(s) ID(s) fornecida(s).
-
#for_ids(ids) ➤ Critérios
Adiciona um critério ao
Criteriaque especifica um ID que deve ser correspondido. -
#multiple_from_db(ids) ➤ Array<Document>
Obtenha os documentos do mapa de identidade e, se não for encontrado, acesse o banco de dados.
Detalhes do método de instância
#execute_or_raise(ids, multi) ➤ Documento | Array <Documento>
Execute os critérios ou gere um erro se nenhum documento for encontrado.
20 21 22 23 24 |
# Arquivo 'lib/mongoid/criteria/findable.rb', linha 20 def execute_or_raise(ids, multi) Resultado = multiple_from_db(ids) check_for_missing_documents!(Resultado, ids) multi ? Resultado : Resultado.primeiro end |
#encontrar(*args) ➤ Documento | Array <Documento>
Cada argumento pode ser um ID individual, uma array de ids ou uma array agrupada. Cada array será achatada.
Encontre o(s) documento(s) correspondente(s) nos critérios para a(s) ID(s) fornecida(s).
40 41 42 43 44 |
# Arquivo 'lib/mongoid/criteria/findable.rb', linha 40 def find(*Args) ids = prepare_ids_for_find(Args) raise_invalid se ids.algum?(&:nil?) for_ids(ids).execute_or_raise(ids, multi_args?(Args)) end |
#for_ids(ids) ➤ Critérios
Adiciona um critério ao Criteria que especifica um ID que deve ser correspondido.
57 58 59 60 61 62 63 64 |
# Arquivo 'lib/mongoid/criteria/findable.rb', linha 57 def for_ids(ids) ids = mongoize_ids(ids) se ids.Tamanho > 1 enviar(id_finder, { _id: { '$in' => ids } }) mais enviar(id_finder, { _id: ids.primeiro }) end end |
#multiple_from_db(ids) ⇒ Array<Document>
Obtenha os documentos do mapa de identidade e, se não for encontrado, acesse o banco de dados.
75 76 77 78 79 80 |
# Arquivo 'lib/mongoid/criteria/findable.rb', linha 75 def multiple_from_db(ids) Método entradas se ids = mongoize_ids(ids) ids.vazio? ? [] : from_database(ids) end |