Clase: Mongoid::Contextual::Mongo
- Hereda:
-
Objeto
- Objeto
- Mongoid::Contextual::Mongo
- Ampliado por:
- Reenviable
- Incluye:
- Enumerable, Association::EagerLoadable, Atomico, Aggregable::Mongo, Queryable, Pluckable
- Definido en:
- lib/mongoid/contextual/mongo.rb,
lib/mongoid/contextual/mongo/documents_loader.rb
Overview
Objeto de contexto utilizado para realizar consultas masivas y operaciones de persistencia en documentos que se almacenan en la base de datos y no se han cargado en la memoria de la aplicación.
Definido bajo Namespace
clase: DocumentsLoader
Resumen de constantes colapsar
- OPCIONES =
Constante opciones.
%i[hint limit Omitir sort batch_size max_scan max_time_ms snapshot comment Lea cursor_type intercalación].freeze
Constantes incluidas de Atomic
Resumen de atributos de la instancia colapsar
-
#documents_loader ⇒ Objeto
Solo lectura
Devuelve el valor del atributo documents_loader.
-
#view ⇒ Hash
Solo lectura
Ejecuta una explicación sobre los criterios.
- #vista La vista de la colección Mongo.(Lavista de la colección Mongo.) ⇒ Objeto Solo lectura
Atributos incluidos de Queryable
#colección, #colección La colección para query., #criterios, #criterios Los criterios para el contexto., #klass, #klass El klass para los criterios.
Resumen del método de instancia colapsar
-
#count(options = {}, &block) ⇒ Integer
Obtén la cantidad de documentos que coinciden con la query.
-
#borrar ⇒ nil (también: #delete_all)
Elimine todos los documentos de la base de datos que coincidan con el selector.
-
#destroy ⇒ nil (también: #destroy_all)
Destruye todos los documentos en la base de datos que coincidan con el selector.
-
#distinct(campo) ⇒ arreglo<Object>
Obtenga los valores distintos en la base de datos para el campo proporcionado.
-
#each(&block) ⇒ Enumerator
Iterar sobre el contexto.
-
#estimated_count(opciones = {}) ⇒ Integer
Obtén el número estimado de documentos que coinciden con la query.
-
#¿exists?(id_or_conditions = :none) ⇒ true | false
¿Existen documentos para el contexto?
-
#quinto ⇒ Documento | nil
Obtén el quinto document de la base de datos para el selector de los criterios.
-
#¡quinto! ⇒ Documento
Obtén el quinto document en la base de datos para el selector del criterio o genera un error si no se encuentra ninguno.
-
#find_first ⇒ Objeto
privado
Devuelve el primer resultado sin aplicar clasificación.
-
#find_one_and_delete ⇒ Documento
Ejecute el comando de búsqueda y modificación, usado para $findAndModify de MongoDB.
-
#find_one_and_replace(reemplazo, opciones = {}) ⇒ documento
Ejecute el comando de búsqueda y modificación, usado para $findAndModify de MongoDB.
-
#find_one_and_update(update, options = {}) ⇒ Document
Ejecute el comando de búsqueda y modificación, usado para $findAndModify de MongoDB.
-
#primero(límite = nil) ⇒ Documento | nil (también: #uno)
Obtenga el primer documento en la base de datos para el selector del criterio.
-
#first! ⇒ Document
Obtenga el primer document en la base de datos para el selector del criterio o muestre un error si no se encuentra ninguno.
-
#cuarta ⇒ Documento | nil
Obtén el cuarto document en la base de datos para el selector del criterio.
-
#¡cuarto! ⇒ Documento
Obtén el cuarto document en la base de datos para el selector de criterios o devuelve un error si no se encuentra ninguno.
-
#inicializar(criterios) ⇒ Mongo
constructor
Cree el nuevo contexto Mongo.
-
#last(limit = nil) ⇒ Document | nil
Obtén el último document en la base de datos para el selector de criterios.
-
#last! ⇒ Document
Obtén el último document en la base de datos para el selector de los criterios o genera un error si no se encuentra ninguno.
-
#longitud ⇒ Entero (también: #tamaño)
Devuelve el número de documentos en la base de datos que coinciden con el selector de la query.
-
#limit(valor) ⇒ Mongo
Limita la cantidad de documentos que se devuelven en la base de datos.
-
#load_async ⇒ Objeto
privado
Programa un cronograma para cargar documentos para el contexto.
-
#map_reduce(map, reduce) ⇒ MapReduce
Inicia una operación de map/reduce desde el contexto.
-
# pick(*fields) ⇒ objeto |arreglo<Object>
Elije los valores de un solo campo de la base de datos.
-
# pluck(*fields) ⇒arreglo<Object> | arreglo<arreglo<Object>>
Extrae el/los valor(es) del campo desde la base de datos.
-
#segundo ⇒ Documento | nil
Consigue el segundo document en la base de datos para el selector de criterios.
-
#¡segundo! ⇒ Documento
Obtenga el segundo document de la base de datos para el selector de criterios o genere un error si no se encuentra ninguno.
-
#penúltima ⇒ Documento | nulo
Obtener el penúltimo document de la base de datos para el selector de criterios.
-
#segundo_al_último! ⇒ Documento
Obtén el penúltimo document de la base de datos según el selector del criterio o genera un error si no se encuentra ninguno.
-
#skip(value) ⇒ Mongo
Omite el número proporcionado de documentos.
-
#sort(values = nil, &block) ⇒ Mongo
Ordena los documentos según la especificación proporcionada.
-
#take(limit = nil) ⇒ Document | Array<Document>
Tome el número de documentos dado de la base de datos.
-
#take! ⇒ Document
Tome un documento de la base de datos y genere un error si no hay ninguno.
-
#tally(field) ⇒ Hash
Obtén un hash de recuentos para los valores de un solo campo.
-
#tercer ⇒ Documento | nulo
Obtén el tercer document en la base de datos para el selector del criterio.
-
#tercero! ⇒ Documento
Obtener el tercer document en la base de datos para el selector del criterio o generar un error si no se encuentra ninguno.
-
#third_to_last ⇒ Documento | nil
Obtén el tercer document antes del último en la base de datos según el selector del criterio.
-
#¡tercero_al_último! ⇒ Documento
Get el tercer document desde el final en la base de datos que cumpla con el selector de los criterios o genere un error si no se encuentra ninguno.
-
#update(attributes = nil, opts = {}) ⇒ nil | false
Actualiza el primer documento coincidente de forma atómica.
-
#update_all(attributes = nil, opts = {}) ⇒ nil | false
Actualiza todos los documentos coincidentes de manera atómica.
Métodos incluidos de Queryable
Métodos incluidos desde Association::EagerLoadable
#crear_pipeline, #carga_rápida, #carga_rápida_con_búsqueda, #cargable_rápidamente?, #precarga, #precarga_para_búsqueda, #intercambiar_campos_locales_y_extranjeros?
Métodos incluidos de Atomic
#add_atomic_pull, #add_atomic_unset, #atomic_array_add_to_sets, #atomic_array_pulls, #atomic_array_pushes, #atomic_attribute_name, #atomic_delete_modifier, #atomic_insert_modifier, #atomic_path, #atomic_paths, #atomic_position, #atomic_pulls, #atomic_pushes, #atomic_sets, #atomic_unsets, #atomic_updates, #delayed_atomic_pulls, #delayed_atomic_sets, #delayed_atomic_unsets, #flag_as_destroyed, #flagged_destroys, #process_flagged_destroys
Métodos incluidos en Aggregable::Mongo
#agregados, #prom, #máx, #mín, #sum
Detalles del Constructor
#intaializar(criterios) ⇒ Mongo
Crea el nuevo contexto de Mongo. Esto delega las operaciones al controlador subyacente.
269 270 271 272 273 274 275 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 269 def inicializar(criterios) @criteria, @klass = criterios, criterios.klass @colección = @klass.Colección criterios.enviar(:merge_type_selection) @view = Colección.buscar(criterios.selector, sesión: _sesión) end |
Detalles de atributo de instancias
#documents_loader ⇒ Object (solo lectura)
Devuelve el valor del atributo documents_loader.
53 54 55 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 53 def documents_loader @documents_loader end |
#vista ⇒ Hash (solo lectura)
Ejecuta una explicación sobre los criterios.
41 42 43 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 41 def vista @view end |
#ver La vista de la colección Mongo.(Lavista de lacolecciónMongo.) ⇒ Objeto (solo lectura)
41 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 41 attr_reader vista |
Detalles del método de instancia
#count(options = {}, &block) ⇒ Integer
Obtén la cantidad de documentos que coinciden con la query.
72 73 74 75 76 77 78 79 80 81 82 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 72 def count( = {}, &bloque) return super(&bloque) si ¿block_given? si valid_for_count_documents? vista.contar_documentos() else # TODO: Remueve esto cuando quitemos la API for_js obsoleta. # https://jira.mongodb.org/browse/MONGOID-5681 vista.count() end end |
#borrar ⇒ nulo También conocido como: delete_all
Elimine todos los documentos de la base de datos que coincidan con el selector.
112 113 114 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 112 def borrar vista.borrar_varios.deleted_count end |
#destruir ⇒ nil También conocido como: destroy_all
Destruye todos los documentos en la base de datos que coincidan con el selector.
123 124 125 126 127 128 129 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 123 def destruir cada.inyectar(0) hacer |count, doc| doc.destruir count += 1 si acknowledged_write? count end end |
# distinto(campo)⇒ arreglo<Object>
Obtenga los valores distintos en la base de datos para el campo proporcionado.
140 141 142 143 144 145 146 147 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 140 def distinct(Campo) Nombre = klass.cleanse_localized_field_names(Campo) vista.distinct(Nombre).map hacer |Valor| es_traducción = "#{nombre}_traducciones" == Campo.to_s desmongoizar_recursivo(Nombre, Valor, es_traducción) end end |
#each(&block) ⇒ Enumerator
Iterar sobre el contexto. Si se proporciona un bloque, cede a un documento Mongoid por cada uno; de lo contrario, retorna un enum.
158 159 160 161 162 163 164 165 166 167 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 158 def cada(&bloque) si ¿block_given? documentos_para_iteración.cada hacer |doc| yield_document(doc, &bloque) end sí mismo else to_enum end end |
#estimated_count(options = {}) ⇒ Integer
Obtén el número estimado de documentos que coinciden con la query.
A diferencia de count, estimated_count no toma un bloque porque no está tradicionalmente definido (con un bloque) en Enumerable como lo está count.
96 97 98 99 100 101 102 103 104 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 96 def estimated_count( = {}) a menos que criterios.selector.¿vacío? propagar Mongoid::Errors::Alcance de conteo estimado no válido.Nuevo(klass) si klass.default_scoping? propagar Mongoid::Errors::InvalidEstimatedCountCriteria.Nuevo(klass) end vista.estimated_document_count() end |
#¿exists?(id_or_conditions = :none) ⇒ true | false
No usamos count aquí porque Mongo no utiliza índices b-tree contados.
¿Existen documentos para el contexto?
188 189 190 191 192 193 194 195 196 197 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 188 def ¿existe?(id_or_conditions = none) return false si vista.limit == 0 caso id_or_conditions cuando none entonces !!vista.proyección(_id: 1).limit(1).primero cuando nulo, false entonces false cuando encriptada entonces mongo.Nuevo(criterios.dónde(id_or_conditions)).¿existe? else mongo.Nuevo(criterios.dónde(_id: id_or_conditions)).¿existe? end end |
#quinto ⇒ Documento | nulo
Obtén el quinto document de la base de datos para el selector de los criterios.
684 685 686 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 684 def quinto retrieve_nth(4) end |
#¡quinto! ⇒ Documento
Obtén el quinto document en la base de datos para el selector del criterio o genera un error si no se encuentra ninguno.
698 699 700 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 698 def ¡quinto! quinto || raise_document_not_found_error end |
#find_first ⇒ objeto
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve el primer resultado sin aplicar ordenación
255 256 257 258 259 260 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 255 def find_first return a menos que raw_doc = vista.primero doc = Fábrica.from_db(klass, raw_doc, criterios) eager_load([ doc ]).primero end |
#find_one_and_delete ⇒ Documento
Ejecute el comando find and modify, utilizado para $findAndModify de MongoDB. Esto elimina el document encontrado.
246 247 248 249 250 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 246 def find_one_and_delete return a menos que doc = vista.find_one_and_delete Fábrica.from_db(klass, doc) end |
#find_one_and_replace(replacement, opciones = {}) ⇒ documento
Ejecute el comando de búsqueda y modificación, usado para $findAndModify de MongoDB.
233 234 235 236 237 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 233 def find_one_and_replace(reemplazo, = {}) return a menos que doc = vista.find_one_and_replace(reemplazo, ) Fábrica.from_db(klass, doc) end |
#find_one_and_update(update, options = {}) ⇒ Document
Ejecute el comando de búsqueda y modificación, usado para $findAndModify de MongoDB.
213 214 215 216 217 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 213 def find_one_and_update(update, = {}) return a menos que doc = vista.find_one_and_update(update, ) Fábrica.from_db(klass, doc) end |
#primero(límite = nil) ⇒ Documento | nil También conocido como: uno
Agregar automáticamente una ordenación en _id cuando no se define ninguna otra ordenación en los criterios tiene el potencial de causar problemas de rendimiento graves. Si experimenta un bajo rendimiento inesperado al usar #first o #last y no tiene un orden definido en los criterios, use #take en su lugar. Tenga en cuenta que #tome no garantiza el orden.
Obtenga el primer documento en la base de datos para el selector del criterio.
535 536 537 538 539 540 541 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 535 def primero(limit = nulo) si limit.nil? retrieve_nth(0) else retrieve_nth_with_limit(0, limit) end end |
#first! ⇒ Document
Agregar automáticamente una ordenación en _id cuando no se define ninguna otra ordenación en los criterios tiene el potencial de causar problemas de rendimiento graves. Si experimenta un rendimiento bajo inesperado al utilizar #first! o #last! y no tienes ningún orden definido en los criterios, utiliza #take! en vez de eso. Ten en cuenta que #take! no garantiza el orden.
Obtenga el primer document en la base de datos para el selector del criterio o muestre un error si no se encuentra ninguno.
560 561 562 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 560 def ¡primero! primero || raise_document_not_found_error end |
#cuarto ⇒ Documento | nil
Obtén el cuarto document en la base de datos para el selector del criterio.
660 661 662 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 660 def cuarto retrieve_nth(3) end |
#¡cuarto! ⇒ Documento
Obtén el cuarto document en la base de datos para el selector de criterios o devuelve un error si no se encuentra ninguno.
674 675 676 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 674 def ¡cuarto! cuarto || raise_document_not_found_error end |
#last(limit = nil) ⇒ Document | nil
Agregar automáticamente una ordenación en _id cuando no se define ninguna otra ordenación en los criterios tiene el potencial de causar problemas de rendimiento graves. Si experimenta un bajo rendimiento inesperado al usar #first o #last y no tiene un orden definido en los criterios, use #take en su lugar. Tenga en cuenta que #tome no garantiza el orden.
Obtén el último document en la base de datos para el selector de criterios.
578 579 580 581 582 583 584 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 578 def último(limit = nulo) si limit.nil? retrieve_nth_to_last(0) else retrieve_nth_to_last_with_limit(0, limit) end end |
#last! ⇒ Document
Agregar automáticamente una ordenación en _id cuando no se define ninguna otra ordenación en los criterios tiene el potencial de causar problemas de rendimiento graves. Si experimenta un rendimiento bajo inesperado al utilizar #first! o #last! y no tienes ningún orden definido en los criterios, utiliza #take! en vez de eso. Ten en cuenta que #take! no garantiza el orden.
Obtén el último document en la base de datos para el selector de los criterios o genera un error si no se encuentra ninguno.
602 603 604 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 602 def ¡último! último || raise_document_not_found_error end |
#longitud ⇒ Integer También conocido como: tamaño
Devuelve el número de documentos en la base de datos que coinciden con el selector de la query.
286 287 288 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 286 def longitud count end |
#límite(valor) ⇒ Mongo
Limita la cantidad de documentos que se devuelven en la base de datos.
299 300 301 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 299 def limit(Valor) @view = vista.limit(Valor) y sí mismo end |
#load_async ⇒ Object
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Programa un cronograma para cargar documentos para el contexto.
Dependiendo de la configuración de Mongoid, la tarea programada puede ejecutarse inmediatamente en el hilo del llamador, o puede programarse para una ejecución asíncrona.
761 762 763 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 761 def cargar_asincrónicamente @documents_loader ||= DocumentsLoader.Nuevo(vista, klass, criterios) end |
#map_reduce(map, reduce) ⇒ MapReduce
Inicia una operación de map/reduce desde el contexto.
312 313 314 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 312 def map_reduce(map, disminuir) mapReduce.Nuevo(Colección, criterios, map, disminuir) end |
#pick(*campos) ⇒ Object | Array<Object>
Elije los valores de un solo campo de la base de datos.
349 350 351 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 349 def elegir(*Campos) limit(1).pluck(*Campos).primero end |
#pluck(*campos) ⇒ Array<Object> | Array<Array<Object>>
Selecciona el/los valor(es) del campo de la base de datos. Devuelve un resultado por cada documento encontrado en la base de datos para el contexto. Los resultados se normalizan según sus tipos de campo Mongoid. Tenga en cuenta que los resultados pueden incluir duplicados y valores nulos.
332 333 334 335 336 337 338 339 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 332 def pluck(*Campos) # Varios campos pueden asignarse al mismo nombre de campo. Por ejemplo, # la obtención de un campo y su _campo de traducciones corresponden al mismo # campo en la base de datos. por esta razón, debemos preparar el # proyección específicamente. prep = prepare_pluck(Campos, prepare_projection: true) extraer de documentos(vista.proyección(prep[:proyección]), prep[Nombres de campos]) end |
#segundo ⇒ Documento | nil
Consigue el segundo document en la base de datos para el selector de criterios.
612 613 614 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 612 def segundo retrieve_nth(1) end |
#segundo! ⇒ Documento
Obtenga el segundo document de la base de datos para el selector de criterios o genere un error si no se encuentra ninguno.
626 627 628 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 626 def ¡segundo! segundo || raise_document_not_found_error end |
#second_to_last ⇒ Documento | nil
Obtener el penúltimo document de la base de datos para el selector de criterios.
Se encuentra.
710 711 712 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 710 def penúltimo retrieve_nth_to_last(1) end |
#segundo_a_ultimo! ⇒ Documento
Obtén el penúltimo document de la base de datos según el selector del criterio o genera un error si no se encuentra ninguno.
724 725 726 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 724 def second_to_last! penúltimo || raise_document_not_found_error end |
#skip(value) ⇒ Mongo
Omite el número proporcionado de documentos.
465 466 467 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 465 def Omitir(Valor) @view = vista.Omitir(Valor) y sí mismo end |
#sort(values = nil, &block) ⇒ Mongo
Ordena los documentos según la especificación proporcionada.
478 479 480 481 482 483 484 485 486 487 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 478 def sort(values = nulo, &bloque) si ¿block_given? super(&bloque) else # actualiza los criterios @criteria = criterios.ordenar_por(values) aplicar_opción(:sort) sí mismo end end |
#take(limit = nil) ⇒ Document | Array<Document>
Tome el número de documentos dado de la base de datos.
362 363 364 365 366 367 368 369 370 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 362 def tomar(limit = nulo) si limit limit(limit).to_a else # Haz to_a primero para que el método Mongo#first no se utilice y # el resultado no está ordenado. limit(1).to_a.primero end end |
#take! ⇒ Document
Tome un documento de la base de datos y genere un error si no hay ninguno.
381 382 383 384 385 386 387 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 381 def ¡toma! # Haz to_a primero para que el método Mongo#first no se utilice y # el resultado no está ordenado. propagar Errors::DocumentoNoEncontrado.Nuevo(klass, nulo, nulo) a menos que fst = limit(1).to_a.primero fst end |
#tally(campo) ⇒ Hash
Obtén un resumen de recuentos para los valores de un solo campo. Por ejemplo, si los siguientes documentos estuvieran en la base de datos:
{ _id: 1, age: 21 }
{ _id: 2, age: 21 }
{ _id: 3, age: 22 }
Model.tally("age")
produciría el siguiente resultado:
{ 21 => 2, 22 => 1 }
Al contar un campo dentro de una asociación de arreglo o embeds_many:
{ _id: 1, array: [ { x: 1 }, { x: 2 } ] }
{ _id: 2, array: [ { x: 1 }, { x: 2 } ] }
{ _id: 3, array: [ { x: 1 }, { x: 3 } ] }
Model.tally("array.x")
Las claves del hash resultante son arreglos:
{ [ 1, 2 ] => 2, [ 1, 3 ] => 1 }
Nota que si se suma un elemento en un arreglo de hashes y la clave no existe en algunos de los hashes, tally no incluirá esas claves nil en el hash resultante:
{ _id: 1, array: [ { x: 1 }, { x: 2 }, { y: 3 } ] }
Model.tally("array.x")
# => { [ 1, 2 ] => 1 }
426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 426 def cómputo(Campo) Nombre = klass.cleanse_localized_field_names(Campo) fld = klass.recorrer_árbol_de_asociaciones(Nombre) pipeline = [ { '$grupo' => { _id: "$#{name}", cuentas: { '$sum': 1 } } } ] pipeline.unshift('$match' => vista.filtro) a menos que view.filtro.blank? colección.agregar(pipeline).each_with_object({}) do |doc, tallies| es_traducción = "#{nombre}_traducciones" == campo.to_s val = doc['_id'] key = if val.is_a?(Array) val.map do |v| demongoize_with_field(fld, v, is_translation) end else demongoize_with_field(fld, val, is_translation) end # La única vez en que una clave ya existirá en el hash de recuentos # es cuando los valores se almacenan de manera diferente en la base de datos, pero # se desmongoizan al mismo valor. Un buen ejemplo de cuándo sucede esto # es al usar campos localizados. Si bien la consulta del servidor no agrupará # juntos los hashes que tengan otros valores en diferentes idiomas, el # valor desmongoizado es sólo la traducción en la localidad actual, # que puede ser la misma en varios de esos hashes desiguales. contadores[clave] ||= 0 contadores[clave] += doc['conteos'] end end |
#tercero ⇒ Documento | nil
Obtén el tercer document en la base de datos para el selector del criterio.
636 637 638 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 636 def tercero retrieve_nth(2) end |
#¡tercero! ⇒ Documento
Obtener el tercer document en la base de datos para el selector del criterio o generar un error si no se encuentra ninguno.
650 651 652 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 650 def ¡tercero! tercero || raise_document_not_found_error end |
#tercero_anteúltimo ⇒ Documento | nil
Obtén el tercer document antes del último en la base de datos según el selector del criterio.
Se encuentra.
736 737 738 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 736 def antepenúltimo retrieve_nth_to_last(2) end |
#¡antepenúltimo! ⇒ documento
Get el tercer document desde el final en la base de datos que cumpla con el selector de los criterios o genere un error si no se encuentra ninguno.
750 751 752 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 750 def tercero por la cola! antepenúltimo || raise_document_not_found_error end |
#update(attributes = nil, opts = {}) ⇒ nil | false
Actualiza el primer documento coincidente de forma atómica.
501 502 503 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 501 def update(atributos = nulo, opciones = {}) update_documents(atributos, :update_one, opciones) end |
#update_all(attributes = nil, opts = {}) ⇒ nil | false
Actualiza todos los documentos coincidentes de manera atómica.
517 518 519 |
# Archivo 'lib/mongoid/contextual/mongo.rb', línea 517 def update_all(atributos = nulo, opciones = {}) update_documents(atributos, :update_many, opciones) end |