Módulo: Mongoid::Findable
- Ampliado por:
- Reenviable
- Definido en:
- lib/mongoid/findable.rb
Overview
Este módulo define los métodos de búsqueda que se asocian al documento a nivel de clase.
Resumen del método de instancia colapsar
-
#any? ⇒ true | false
Devuelve "true" si existen document que cumplan con los criterios.
-
#count ⇒ Integer
Devuelve un recuento de registros en la base de datos.
-
#¿vacío? ⇒ true | false
Devuelve verdadero si el recuento es cero.
-
#estimated_count ⇒ Entero
Devuelve un recuento estimado de registros en la base de datos.
-
#¿exists?(id_or_conditions = :none) ⇒ true | false
Devuelve verdadero si hay algún documento en la base de datos según los argumentos proporcionados.
-
# find(*args, &block) ⇒ documento |arreglo<Document> | nil
Encuentra un
Documento varios documentos por sus valores de _id. -
#find_by(attrs = {}) {|result| ... } ⇒ Documento | nil
Encuentra el primer
Documentdadas las condiciones. -
#find_by!(attrs = {}) {|result| ... } ⇒ Document
Encuentra el primer
Documentdadas las condiciones, o lanzar Mongoid::Errors::DocumentNotFound. -
#primero(límite = nil) ⇒ Documento (también: #uno)
Encuentra el primer
Documentdadas las condiciones. -
#last(limit = nil) ⇒ Document
Encuentra el último
Documentdado las condiciones. -
#muchos? ⇒ true | false
Devuelve verdadero si existe más de un document en los criterios.
-
#¿uno? ⇒ cierto | falso
Devuelve true si solo existe un document en los criterios.
Detalles del método de instancia
#cualquiera? ⇒ verdadero | falso
Devuelve "true" si existen document que cumplan con los criterios.
124 125 126 |
# Archivo 'lib/mongoid/findable.rb', línea 124 def any? limit(1).count > 0 end |
#count ⇒ Integer
Devuelve un recuento de registros en la base de datos. Si quieres especificar condiciones, utiliza WHERE.
73 74 75 |
# Archivo 'lib/mongoid/findable.rb', línea 73 def count con_ámbito_predeterminado.count end |
#empty? ⇒ true | false
Devuelve verdadero si el recuento es cero
93 94 95 |
# Archivo 'lib/mongoid/findable.rb', línea 93 def ¿vacío? count == 0 end |
#estimated_count ⇒ Entero
Devuelve un recuento estimado de registros en la base de datos.
83 84 85 |
# Archivo 'lib/mongoid/findable.rb', línea 83 def estimated_count con_ámbito_predeterminado.estimated_count end |
#¿exists?(id_or_conditions = :none) ⇒ true | false
Devuelve verdadero si hay algún documento en la base de datos según los argumentos proporcionados.
114 115 116 |
# Archivo 'lib/mongoid/findable.rb', línea 114 def ¿existe?(id_or_conditions = none) con_ámbito_predeterminado.¿existe?(id_or_conditions) end |
#find(*args, &block) ⇒ Document | Array<Document> | nil
Cada argumento puede ser un ID individual, un arreglo de IDs o un arreglo anidado. Cada arreglo se aplanará.
Encuentra un Document o varios documentos por sus valores de _id.
Si se proporciona un solo argumento que no es un arreglo, este argumento se interpreta como el valor _id del documento que se busca. Si existe un documento que coincida en la base de datos, este documento se devuelve; de lo contrario, si la opción de configuración de Mongoid raise_not_found_error es verdadera (que es la opción por defecto), se lanza Errors::DocumentNotFound, y si raise_not_found_error es falsa, find devuelve nil.
Si se dan múltiples argumentos, o si se da un argumento tipo arreglo, se aplana el arreglo y se interpreta cada elemento del arreglo como el valor de _id del documento que se debe buscar. Mongoid luego intenta recuperar todos los documentos con los valores de _id proporcionados. El valor devuelto es un arreglo de Documentos encontrados. Cada documento aparece una vez en el arreglo devuelto, incluso si su _id se proporciona varias veces en el argumento de find. Si la opción de configuración raise_not_found_error Mongoid es verdadera, Errors::DocumentNotFound se generará una excepción si alguno de los _ids especificados no se encuentra en la base de datos. Si la opción de configuración de Mongoid raise_not_found_error es falsa, solo se devuelven aquellos documentos que se encuentran; si no se encuentra ningún documento, el valor de retorno es un arreglo vacío.
Ten en cuenta que MongoDB no permite que el campo _id sea un arreglo.
El argumento se somete a las conversiones habituales de tipo Mongoid según el tipo declarado para el campo _id. Por defecto, el campo _id es un BSON::ObjectId; esto permite que las cadenas se pasen a find y las cadenas se convertirán de forma transparente en instancias de BSON::ObjectId durante la construcción de consultas.
Si a este método se le pasa un bloque, delega en Enumerable#find y retorna el primer document de aquellos encontrados por el objeto Criteria actual para los cuales el bloque retorna un valor "truthy". Si se proporcionan tanto un bloque como identificadores, el bloque será ignorado y se devolverán los documentos correspondientes a los identificadores proporcionados. Si se proporciona un bloque y un proc, el método delega en Enumerable#find y utiliza el proc como valor por defecto.
El método find tiene en cuenta el ámbito por defecto definido en la clase del modelo, si existe.
197 198 199 200 201 202 203 204 |
# Archivo 'lib/mongoid/findable.rb', línea 197 def buscar(*args, &bloque) empty_or_proc = args.¿vacío? || (args.longitud == 1 && args.primero.is_a?(Proc)) si ¿block_given? && empty_or_proc con_ámbito_predeterminado.buscar(*args, &bloque) else con_ámbito_predeterminado.buscar(*args) end end |
#find_by(attrs = {}) {|result| ... } ⇒ documento | nil
Encuentra el primer Document dado las condiciones. Si no se encuentra un documento coincidente y Mongoid.raise_not_found_error es verdadero, arroja Mongoid::Errors::DocumentNotFound y devuelve nulo nil de otra manera.
y Mongoid.raise_not_found_error es verdadero.
220 221 222 223 224 225 226 |
# Archivo 'lib/mongoid/findable.rb', línea 220 def find_by(attrs = {}) Resultado = dónde(attrs).find_first propagar(Errors::DocumentoNoEncontrado.Nuevo(sí mismo, attrs)) si Resultado.nil? && Mongoid.raise_not_found_error rendimiento(Resultado) si Resultado && ¿block_given? Resultado end |
#find_by!(attrs = {}) {|result| ... } ⇒ Documento
Encuentra el primer Document dadas las condiciones, o lanza Mongoid::Errors::DocumentNotFound
239 240 241 242 243 244 245 |
# Archivo 'lib/mongoid/findable.rb', línea 239 def find_by!(attrs = {}) Resultado = dónde(attrs).find_first propagar(Errors::DocumentoNoEncontrado.Nuevo(sí mismo, attrs)) a menos que Resultado rendimiento(Resultado) si Resultado && ¿block_given? Resultado end |
#first(limite = nil) ⇒ Documento también conocido como: uno
Encuentra el primer Document dadas las condiciones.
255 256 257 |
# Archivo 'lib/mongoid/findable.rb', línea 255 def primero(limit = nulo) con_ámbito_predeterminado.primero(limit) end |
#last(limit = nil) ⇒ Document
Encuentra el último Document dado las condiciones.
268 269 270 |
# Archivo 'lib/mongoid/findable.rb', línea 268 def último(limit = nulo) con_ámbito_predeterminado.último(limit) end |
#muchos? ⇒ verdadero | falso
Devuelve verdadero si existe más de un document en los criterios.
144 145 146 |
# Archivo 'lib/mongoid/findable.rb', línea 144 def ¿muchos? limit(2).count > 1 end |
#¿one? ⇒ verdadero | falso
Devuelve true si solo existe un document en los criterios.
134 135 136 |
# Archivo 'lib/mongoid/findable.rb', línea 134 def ¿uno? limit(2).count == 1 end |