Módulo: Mongoid::Criteria::Findable
- Incluido en:
- Mongoid::Criteria
- 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
-
# execute_or_raise(ids, multi) ⇒ Documento |Arreglo<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.
20 21 22 23 24 |
# Archivo 'lib/mongoid/criteria/findable.rb', línea 20 def execute_or_raise(identificadores, multi) Resultado = multiple_from_db(identificadores) ¡check_for_missing_documents!(Resultado, identificadores) 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.
40 41 42 43 44 |
# Archivo 'lib/mongoid/criteria/findable.rb', línea 40 def buscar(*args) identificadores = prepare_ids_for_find(args) raise_invalid si identificadores.any?(&:nil?) for_ids(identificadores).execute_or_raise(identificadores, multi_args?(args)) end |
#for_ids(ids) ⇒ Criteria
Agrega un criterio al Criteria que especifica un id que debe coincidir.
57 58 59 60 61 62 63 64 |
# Archivo 'lib/mongoid/criteria/findable.rb', línea 57 def for_ids(identificadores) identificadores = mongoizar_ids(identificadores) si identificadores.Tamaño > 1 enviar(id_finder, { _id: { '$in' => identificadores } }) else enviar(id_finder, { _id: identificadores.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.
75 76 77 78 79 80 |
# Archivo 'lib/mongoid/criteria/findable.rb', línea 75 def multiple_from_db(identificadores) return entradas si identificadores = mongoizar_ids(identificadores) identificadores.¿vacío? ? [] : from_database(identificadores) end |