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 agrega la capacidad de encontrar documentos por identificación.
Colapso del resumen del método de instancia
-
#ejecutar_o_elevar(ids, multi) ⇒ Documento | Matriz<Document>
Ejecute los criterios o genere un error si no se encuentran documentos.
-
#find(*args) ⇒ Document | Array<Document>
Encuentre los documentos que coincidan con los criterios para los identificadores proporcionados.
-
#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 los encuentras, consulta la base de datos.
Detalles del método de instancia
#ejecutar_o_elevar(ids, multi) ⇒ Documento |Matriz
Ejecute los criterios o genere un error si no se encuentran documentos.
23 24 25 26 27 |
# Archivo 'lib/mongoid/criteria/findable.rb', línea 23 def ejecutar_o_elevar(identificaciones, multi) resultado = múltiples_de_la_base_de_datos(identificaciones) ¡check_for_missing_documents!(resultado, identificaciones) multi ? resultado : resultado.primera end |
#find(*args) ⇒ Document | Array<Document>
Cada argumento puede ser un ID individual, un array de ID o un array anidado. Cada array se aplanará.
Encuentre los documentos que coincidan con los criterios para los identificadores proporcionados.
43 44 45 46 47 |
# Archivo 'lib/mongoid/criteria/findable.rb', línea 43 def buscar(*args) identificaciones = preparar_ids_para_buscar(args) raise_invalid Si identificaciones.any?(Y:nil?) para_ids(identificaciones).ejecutar_o_elevar(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 para_ids(identificaciones) identificaciones = identificadores de mongoize(identificaciones) Si identificaciones.tamaño > 1 Enviar(id_finder, { _id: { "$en" => identificaciones }}) else Enviar(id_finder, { _id: identificaciones.primera }) end end |
#multiple_from_db(ids) ⇒ Array<Document>
Obtén los documentos del mapa de identidad y, si no los encuentras, consulta la base de datos.
78 79 80 81 82 |
# Archivo 'lib/mongoid/criteria/findable.rb', línea 78 def múltiples_de_la_base_de_datos(identificaciones) return entradas Si identificaciones = identificadores de mongoize(identificaciones) identificaciones.¿vacío? ? [] : desde_base_de_datos(identificaciones) end |