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 encuentran fuera del documento a nivel de clase.
Colapso del resumen del método de instancia
-
#¿vacío? ⇒ verdadero | falso
Devuelve verdadero si el recuento es cero.
-
#recuento_estimado ⇒ Entero
Devuelve un recuento estimado de registros en la base de datos.
-
#¿existe?(id_or_conditions =:none) ⇒ verdadero | falso
Devuelve verdadero si hay un documento en la base de datos según los argumentos proporcionados.
-
#find(*args, &block) ⇒ Documento | Matriz<Document> | nulo
Encuentra un
Documento varios documentos por sus valores _id. -
#find_by(attrs = {}) {|resultado|... } ⇒ Documento | nulo
Encuentra el primer
Documentdadas las condiciones. -
#find_by!(attrs = {}) {|resultado|... } ⇒ Documento
Encuentra el primer
Documentdadas las condiciones, o genera Mongoid::Errors::DocumentNotFound. -
#primero(límite = nulo) ⇒ Documento (también: #uno)
Encuentra el primer
Documentdadas las condiciones. -
#last(limit = nil) ⇒ Document
Encuentra el último
Documentdadas las condiciones.
Detalles del método de instancia
#¿vacío? ⇒ verdadero | falso
Devuelve verdadero si el recuento es cero
94 95 96 |
# Archivo 'lib/mongoid/findable.rb', línea 94 def ¿vacío? count == 0 end |
#recuento_estimado ⇒ Entero
Devuelve un recuento estimado de registros en la base de datos.
84 85 86 |
# Archivo 'lib/mongoid/findable.rb', línea 84 def recuento estimado con alcance predeterminado.recuento estimado end |
#¿existe?(id_or_conditions =:none) ⇒ verdadero | falso
Devuelve verdadero si hay un documento en la base de datos según los argumentos proporcionados.
115 116 117 |
# Archivo 'lib/mongoid/findable.rb', línea 115 def ¿Existe?(id_o_condiciones = :ninguno) con alcance predeterminado.¿Existe?(id_o_condiciones) end |
#find(*args, &block) ⇒ Document | Array<Document> | nil
Cada argumento puede ser un ID individual, un array de ID o un array anidado. Cada array se aplanará.
Encuentra un Document o varios documentos por sus valores _id.
Si se proporciona un único argumento que no sea un array, este se interpreta como el valor _id de un documento a buscar. Si existe un documento coincidente en la base de datos, se devuelve este documento; de lo contrario, si la opción de configuración raise_not_found_error de Mongoid es true (predeterminada), se genera Errors::DocumentNotFound y, si raise_not_found_error es false, find devuelve nil.
Si se proporcionan varios argumentos, o un argumento Array, este se simplifica y cada elemento se interpreta como el valor _id del documento a buscar. Mongoid intenta recuperar todos los documentos con los valores _id proporcionados. El valor de retorno es un array de los documentos encontrados. Cada documento aparece una vez en el array devuelto, incluso si su _id se proporciona varias veces en el argumento find. Si la opción de configuración raise_not_found_error de Mongoid es true, se genera la excepción Errors::DocumentNotFound si alguno de los _ids especificados no se encuentra en la base de datos. Si la opción de configuración raise_not_found_error de Mongoid es false, solo se devuelven los documentos encontrados; si no se encuentra ningún documento, el valor de retorno es un array vacío.
Tenga en cuenta que MongoDB no permite que el campo _id sea una matriz.
El argumento se somete a las conversiones de tipo habituales de Mongoid según el tipo declarado para el campo _id. Por defecto, el campo _id es BSON::ObjectId; esto permite pasar cadenas a find y convertirlas de forma transparente a instancias BSON::ObjectId durante la construcción de la consulta.
Si se proporciona un bloque a este método, delega a Enumerable#find y devuelve el primer documento encontrado por el objeto Crieria actual para el cual el bloque devuelve un valor verdadero. Si se proporcionan tanto un bloque como identificadores, el bloque se ignora y se devuelven los documentos con los identificadores especificados. Si se proporcionan un bloque y un procedimiento, el método delega a Enumerable#find y usa el procedimiento como predeterminado.
El método find tiene en cuenta el alcance predeterminado definido en la clase del modelo, si lo hay.
168 169 170 171 172 173 174 175 |
# Archivo 'lib/mongoid/findable.rb', línea 168 def buscar(*args, Ybloque) empty_or_proc = args.¿vacío? || (args.longitud == 1 && args.primera.is_a?(Proc)) Si ¿bloque_dado? && empty_or_proc con alcance predeterminado.buscar(*args, Ybloque) else con alcance predeterminado.buscar(*args) end end |
#find_by(attrs = {}) {|resultado|... } ⇒ Documento | nulo
Encuentra el primer Document dadas las condiciones. Si no se encuentra un documento coincidente y Mongoid.raise_not_found_error es verdadero, se genera Mongoid::Errors::DocumentNotFound; de lo contrario, se devuelve nulo.
y Mongoid.raise_not_found_error es verdadero.
191 192 193 194 195 196 197 198 |
# Archivo 'lib/mongoid/findable.rb', línea 191 def buscar_por(attrs = {}) resultado = donde(attrs).encontrar_primero Si resultado.nil? && Mongoid.error de generación no encontrado propagar(Errors::Documento no encontrado.Nuevo(yo, attrs)) end rendimiento(resultado) Si resultado && ¿bloque_dado? resultado end |
#find_by!(attrs = {}) {|resultado|... } ⇒ Documento
Encuentra el primer Document dadas las condiciones, o genera Mongoid::Errors::DocumentNotFound
211 212 213 214 215 216 |
# Archivo 'lib/mongoid/findable.rb', línea 211 def ¡encontrar_por!(attrs = {}) resultado = donde(attrs).encontrar_primero propagar(Errors::Documento no encontrado.Nuevo(yo, attrs)) a no ser que resultado rendimiento(resultado) Si resultado && ¿bloque_dado? resultado end |
#primero(límite = nulo) ⇒ Documento También conocido como: uno
Encuentra el primer Document dadas las condiciones.
226 227 228 |
# Archivo 'lib/mongoid/findable.rb', línea 226 def primera(limit = nulo) con alcance predeterminado.primera(limit) end |
#last(limit = nil) ⇒ Document
Encuentra el último Document dadas las condiciones.
239 240 241 |
# Archivo 'lib/mongoid/findable.rb', línea 239 def última(limit = nulo) con alcance predeterminado.última(limit) end |