Módulo: Mongoid::Criteria::Findable
- Incluido en:
- Mongoid::Criterios
- Definido en:
- lib/mongoid/criteria/findable.rb
Overview
Módulo mixin incluido en Mongoid::Criteria que añade la capacidad de encontrar un documento por ID.
Resumen del método de instancia colapsar
-
#ejecutar_o_elevar(ids, multi) ⇒ Documento | Matriz<Document>
Ejecuta los criterios o genera un error si no se encuentran documentos.
-
#find(*args) ⇒ Document | Array<Document>
Encuentra los documentos coincidentes según los criterios para las IDs proporcionadas.
-
#for_ids(ids) ⇒ Criteria
Agrega un criterio al
Criteriaque especifica un id que debe coincidir. -
#multiple_from_db(ids) ⇒ Array<Document>
Obtén los documentos del mapa de identidad y, si no se encuentran, consulta la base de datos.
Detalles del método de instancia
#execute_or_raise(ids, multi) ⇒ Documento | arreglo<Documento>
Ejecuta los criterios o genera un error si no se encuentran documentos.
23 24 25 26 27 |
# Archivo 'lib/mongoid/criteria/findable.rb', línea 23 def execute_or_raise(identificaciones, multi) Resultado = multiple_from_db(identificaciones) ¡check_for_missing_documents!(Resultado, identificaciones) multi ? Resultado : Resultado.primero end |
#find(*args) ⇒ Document | Array<Document>
Cada argumento puede ser un ID individual, un arreglo de IDs o un arreglo anidado. Cada arreglo se aplanará.
Encuentra los documentos coincidentes según los criterios para las IDs proporcionadas.
43 44 45 46 47 |
# Archivo 'lib/mongoid/criteria/findable.rb', línea 43 def buscar(*args) identificaciones = prepare_ids_for_find(args) raise_invalid si identificaciones.any?(Y:nil?) for_ids(identificaciones).execute_or_raise(identificaciones, multi_args?(args)) end |
#for_ids(ids) ⇒ Criteria
Agrega un criterio al Criteria que especifica un id que debe coincidir.
60 61 62 63 64 65 66 67 |
# Archivo 'lib/mongoid/criteria/findable.rb', línea 60 def for_ids(identificaciones) identificaciones = identificadores de mongoize(identificaciones) si identificaciones.tamaño > 1 enviar(id_finder, { _id: { "$in" => identificaciones }}) else enviar(id_finder, { _id: identificaciones.primero }) end end |
#multiple_from_db(ids) ⇒ Array<Document>
Obtén los documentos del mapa de identidad y, si no se encuentran, consulta la base de datos.
78 79 80 81 82 |
# Archivo 'lib/mongoid/criteria/findable.rb', línea 78 def multiple_from_db(identificaciones) return entradas si identificaciones = identificadores de mongoize(identificaciones) identificaciones.¿vacío? ? [] : desde_base_de_datos(identificaciones) end |