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
Criteria
que 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.
23 24 25 26 27 |
# Arquivo 'lib/mongoid/criteria/findable.rb', linha 23 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).
43 44 45 46 47 |
# Arquivo 'lib/mongoid/criteria/findable.rb', linha 43 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.
60 61 62 63 64 65 66 67 |
# Arquivo 'lib/mongoid/criteria/findable.rb', linha 60 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.
78 79 80 81 82 |
# Arquivo 'lib/mongoid/criteria/findable.rb', linha 78 def multiple_from_db(ids) Método entradas se ids = mongoize_ids(ids) ids.vazio? ? [] : from_database(ids) end |