Clase: Mongoid::Contextual::Memoria
- Hereda:
-
Objeto
- Objeto
- Mongoid::Contextual::Memoria
- Incluye:
- Enumerable, Asociación::Carga anticipada, Agregado::Memoria, Queryable, Posicional
- Definido en:
- lib/mongoid/contextual/memory.rb
Overview
Objeto de contexto utilizado para realizar operaciones de query y persistencia masivas en documentos que se han cargado en la memoria de la aplicación. La interfaz de método de esta clase es coherente con Mongoid::Contextual::Mongo.
Resumen de atributos de la instancia colapsar
-
#documentos ⇒ Object
Solo lectura
Devuelve el valor de los documentos atributo.
- #Se están emparejando los documentos en la memoria que coinciden con el selector.(The) ⇒ objeto Solo lectura
-
#ruta ⇒ Objeto
Solo lectura
Devuelve el valor de la ruta del atributo.
- #ruta La ruta atómica.(Latura atómica.) ⇒ objeto Solo lectura
-
#root ⇒ objeto
Solo lectura
Devuelve el valor del atributo root.
- #root El documento raíz.(Eldocumentoraíz.) ⇒ Objeto Solo lectura
-
#selector ⇒ Objeto
Solo lectura
Devuelve el valor del selector del atributo.
- #selector El selector de documento raíz.(El selector de documento raíz.) ⇒ Objeto Solo lectura
Atributos incluidos de Queryable
#colección, #colección La colección sobre la cual realizar la consulta., #criterios, #criterios Loscriterios para el contexto., #clase, #clase La clase para los criterios.
Resumen del método de instancia colapsar
-
#==(otro) ⇒ verdadero | falso
Comprueba si el contexto es igual al otro objeto.
-
#eliminar ⇒ nulo (también: #eliminar_todos)
Eliminar todos los documentos de la base de datos que coincidan con el selector.
-
#destruir ⇒nulo (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 ⇒ Enumerador
Iterar sobre el contexto.
-
#¿exists?(id_or_conditions = :none) ⇒ true | false
¿Existe algún documento para el contexto?
-
#quinto ⇒ Documento
Obtén el quinto documento en la base de datos para el selector de los criterios.
-
#¡quinto! ⇒ Documento
Obten el quinto documento en la base de datos para el selector de criterios o genera un error si no se encuentra ninguno.
-
#first(limit = nil) ⇒ Documento (también: #one, #find_first)
Obtén el primer documento en la base de datos para el selector de criterios.
-
#first! ⇒ Document
Obtener el primer documento en la base de datos para el selector de los criterios o generar un error si no se encuentra ninguno.
-
#cuarto ⇒ Documento
Obtén el cuarto documento en la base de datos para el selector de los criterios.
-
#¡cuarto! ⇒ Documento
Obtenga el cuarto documento en la base de datos para el selector de los criterios o genere un error si no se encuentra ninguno.
-
#inc(incs) ⇒ Enumerator
Incrementar un valor en todos los documentos.
-
#initialize(criteria) ⇒ Memoria
constructor
Crear el nuevo contexto en memoria.
-
#last(limit = nil) ⇒ Document
Obtén el último documento en la base de datos según el selector de los criterios.
-
#last! ⇒ Document
Obtener el último documento en la base de datos para el selector de criterios o generar un error si no se encuentra ninguno.
-
#longitud ⇒ Entero (también: #tamaño)
Obtiene la longitud de los documentos coincidentes en el contexto.
-
#limit(valor) ⇒ Memoria
Limita el número de documentos que se devuelven.
-
# pick(*fields) ⇒ objeto |arreglo<Object>
Selecciona los valores de campo en la memoria.
-
# pluck(*fields) ⇒arreglo<Object> | arreglo<arreglo<Object>>
Extrae los valores de los campos en la memoria.
-
#segundo ⇒ Documento
Obtenga el segundo documento en la base de datos para el selector de criterios.
-
#segundo! ⇒ Documento
Obtén el segundo documento en la base de datos para el selector del criterio o genera un error si no se encuentra ninguno.
-
#second_to_last ⇒ Documento
Obtenga el penúltimo documento en la base de datos para el selector de criterios.
-
#¡penúltimo! ⇒ Documento
Obtenga el segundo último documento en la base de datos para el selector de criterios o genere un error si no se encuentra ninguno.
-
#omitir(valor) ⇒ Memoria
Omite el número de documentos proporcionado.
-
#sort(values) ⇒ Memory
Ordena los documentos según la especificación proporcionada.
-
#take(limit = nil) ⇒ Document
Tome el número de documentos dado de la base de datos.
-
#take! ⇒ Document
Tome la cantidad indicada de documentos de la base de datos o genere un error si no se encontraron documentos.
-
#tally(field) ⇒ Hash
Contabilizar los valores de los campos en la memoria.
-
#tercero ⇒ Documento
Obtenga el tercer documento en la base de datos para el selector de criterios.
-
#tercero! ⇒ Documento
Obtén el tercer documento de la base de datos para el selector del criterio o genera un error si no se encuentra ninguno.
-
#antepenúltimo ⇒ Documento
Obtén el tercer documento antes del último en la base de datos para el selector de los criterios.
-
#¡tercero_al_último! ⇒ Documento
Obtén el tercer documento desde el final en la base de datos para el selector del criterio o genera un error si no se encuentra ninguno.
-
#update(attributes = nil) ⇒ nil | false
Actualiza el primer documento coincidente de forma atómica.
-
#update_all(attributes = nil) ⇒ nil | false
Actualiza todos los documentos coincidentes de manera atómica.
Métodos incluidos desde Positional
Métodos incluidos de Queryable
Métodos incluidos desde Association::EagerLoadable
#carga_ansiosa, #cargable_ansiosa?, #precarga
Métodos incluidos en Aggregable::Memory
#agregados, #promedio, #máx, #mín, #suma
Detalles del constructor
#inicializar(criterios) ⇒ Memoria
Crear el nuevo contexto en memoria.
173 174 175 176 177 178 179 180 181 182 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 173 def inicializar(criterios) @criteria, @klass = criterios, criterios.klass @documents = criterios.Documentos.Seleccionar hacer |doc| @root ||= doc._root @colección ||= root.Colección doc.¿_coincidencias?(criterios.selector) end aplicar_clasificación end |
Detalles de los atributos de instancia
#documentos ⇒ Objeto (solo lectura)
Devuelve el valor de los documentos atributo.
25 26 27 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 25 def Documentos @documents end |
#la coincidencia Los documentos en memoria que cumplen con el selector.(The) ⇒ objeto (solo lectura)
25
|
# Archivo 'lib/mongoid/contextual/memory.rb', línea 25 attr_reader :documentos, puerta, :raíz, :selector |
#ruta ⇒ Objeto (solo lectura)
Devuelve el valor de la ruta del atributo.
25 26 27 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 25 def ruta @path end |
#ruta La ruta atómica.(Theatomicpath.) ⇒ Objeto (solo lectura)
25
|
# Archivo 'lib/mongoid/contextual/memory.rb', línea 25 attr_reader :documentos, puerta, :raíz, :selector |
#root ⇒ Object (solo lectura)
Devuelve el valor del atributo root.
25 26 27 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 25 def root @root end |
#root El documento raíz.(Therootdocument.) ⇒ Objeto (solo lectura)
25
|
# Archivo 'lib/mongoid/contextual/memory.rb', línea 25 attr_reader :documentos, puerta, :raíz, :selector |
#selector ⇒ Object (solo lectura)
Devuelve el valor del selector del atributo.
25 26 27 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 25 def selector @selector end |
#selector El selector de documento raíz.(El selector de documento raíz.) ⇒ Object (solo lectura)
25
|
# Archivo 'lib/mongoid/contextual/memory.rb', línea 25 attr_reader :documentos, puerta, :raíz, :selector |
Detalles del método de instancia
#==(otro) ⇒ verdadero | falso
Comprueba si el contexto es igual al otro objeto.
35 36 37 38 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 35 def ==(Otros) return false a menos que Otros.respond_to?(entradas:) entradas == Otros.entradas end |
#borrar ⇒ nulo También conocido como: delete_all
Eliminar todos los documentos de la base de datos que coincidan con el selector.
46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 46 def borrar deleted = count Removido = map hacer |doc| Preparando eliminación(doc) doc.enviar(.como_atributos) end a menos que Removido.¿vacío? Colección.buscar(selector).update_one( posicionalmente(selector, "$pullAll" => { ruta => Removido }), sesión: _sesión ) end deleted end |
#destruir ⇒ nil También conocido como: destroy_all
Destruye todos los documentos en la base de datos que coincidan con el selector.
68 69 70 71 72 73 74 75 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 68 def destruir deleted = count cada hacer |doc| Documentos.delete_one(doc) doc.destruir end deleted end |
# distinto(campo)⇒ arreglo<Object>
Obtenga los valores distintos en la base de datos para el campo proporcionado.
86 87 88 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 86 def distinct(Campo) pluck(Campo).único end |
#cada uno ⇒ Enumerator
Iterar sobre el contexto. Si se proporciona un bloque, cede a un documento Mongoid por cada uno; de lo contrario, retorna un enum.
99 100 101 102 103 104 105 106 107 108 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 99 def cada si ¿block_given? documentos_para_iteración.cada hacer |doc| rendimiento(doc) end sí mismo else to_enum end end |
#¿exists?(id_or_conditions = :none) ⇒ true | false
¿Existe algún documento para el contexto?
126 127 128 129 130 131 132 133 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 126 def ¿existe?(id_or_conditions = :ninguno) caso id_or_conditions Cuando :ninguno entonces any? Cuando nulo, false entonces false Cuando Picadillo entonces Memoria.Nuevo(criterios.dónde(id_or_conditions)).¿existe? else Memoria.Nuevo(criterios.dónde(_id: id_or_conditions)).¿existe? end end |
#quinto ⇒ Documento
Obtén el quinto documento en la base de datos para el selector de los criterios.
454 455 456 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 454 def quinto eager_load([Documentos.quinto]).primero end |
#quinto! ⇒ Documento
Obten el quinto documento en la base de datos para el selector de criterios o genera un error si no se encuentra ninguno.
468 469 470 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 468 def ¡quinto! quinto || raise_document_not_found_error end |
#primero(límite = nulo) ⇒ Documento También conocido como: uno, find_first
Obtén el primer documento en la base de datos para el selector de criterios.
143 144 145 146 147 148 149 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 143 def primero(limit = nulo) si limit eager_load(Documentos.primero(limit)) else eager_load([Documentos.primero]).primero end end |
#first! ⇒ Document
Obtener el primer documento en la base de datos para el selector de los criterios o generar un error si no se encuentra ninguno.
163 164 165 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 163 def ¡primero! primero || raise_document_not_found_error end |
#cuarto ⇒ Documento
Obtén el cuarto documento en la base de datos para el selector de los criterios.
430 431 432 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 430 def cuarto eager_load([Documentos.cuarto]).primero end |
#¡cuarto! ⇒ Documento
Obtenga el cuarto documento en la base de datos para el selector de los criterios o genere un error si no se encuentra ninguno.
444 445 446 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 444 def ¡cuarto! cuarto || raise_document_not_found_error end |
#inc(incs) ⇒ Enumerator
Incrementar un valor en todos los documentos.
192 193 194 195 196 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 192 def Inc(incs) cada hacer |Documento| Documento.Inc(incs) end end |
#last(limit = nil) ⇒ Document
Obtén el último documento en la base de datos según el selector de los criterios.
206 207 208 209 210 211 212 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 206 def último(limit = nulo) si limit eager_load(Documentos.último(limit)) else eager_load([Documentos.último]).primero end end |
#last! ⇒ Document
Obtener el último documento en la base de datos para el selector de criterios o generar un error si no se encuentra ninguno.
224 225 226 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 224 def ¡último! último || raise_document_not_found_error end |
#longitud ⇒ Integer También conocido como: tamaño
Obtiene la longitud de los documentos coincidentes en el contexto.
234 235 236 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 234 def longitud Documentos.longitud end |
#limit(value) ⇒ Memoria
Limita el número de documentos que se devuelven.
247 248 249 250 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 247 def limit(Valor) sí mismo.limitando = Valor sí mismo end |
#seleccionar(*campos) ⇒ Objeto | Matriz<Object>
Selecciona los valores de campo en la memoria.
274 275 276 277 278 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 274 def elegir(*campos) si doc = Documentos.primero pluck_from_doc(doc, *campos) end end |
#pluck(*campos) ⇒ Array<Object> | Array<Array<Object>>
Extrae los valores de los campos en la memoria.
260 261 262 263 264 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 260 def pluck(*campos) Documentos.map hacer |doc| pluck_from_doc(doc, *campos) end end |
#segundo ⇒ Documento
Obtenga el segundo documento en la base de datos para el selector de criterios.
382 383 384 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 382 def segundo eager_load([Documentos.segundo]).primero end |
#segundo! ⇒ Documento
Obtén el segundo documento en la base de datos para el selector del criterio o genera un error si no se encuentra ninguno.
396 397 398 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 396 def ¡segundo! segundo || raise_document_not_found_error end |
# penúltimo⇒ Documento
Obtenga el penúltimo documento en la base de datos para el selector de criterios.
478 479 480 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 478 def penúltimo eager_load([Documentos.penúltimo]).primero end |
#segundo_a_ultimo! ⇒ Documento
Obtenga el segundo último documento en la base de datos para el selector de criterios o genere un error si no se encuentra ninguno.
492 493 494 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 492 def second_to_last! penúltimo || raise_document_not_found_error end |
#skip(valor) ⇒ Memory
Omite el número de documentos proporcionado.
334 335 336 337 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 334 def Omitir(Valor) sí mismo.saltando = Valor sí mismo end |
#sort(values) ⇒ Memory
Ordena los documentos según la especificación proporcionada.
348 349 350 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 348 def sort(values) in_place_sort(values) y sí mismo end |
#take(limit = nil) ⇒ Document
Tome el número de documentos dado de la base de datos.
304 305 306 307 308 309 310 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 304 def tomar(limit = nulo) si limit eager_load(Documentos.tomar(limit)) else eager_load([Documentos.primero]).primero end end |
#take! ⇒ Document
Tome la cantidad indicada de documentos de la base de datos o genere un error si no se encontraron documentos.
322 323 324 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 322 def ¡toma! tomar || raise_document_not_found_error end |
#tally(campo) ⇒ Hash
Contabilizar los valores de los campos en la memoria.
288 289 290 291 292 293 294 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 288 def cómputo(Campo) return Documentos.each_with_object({}) hacer |d, acc| v = retrieve_value_at_path(d, Campo) acc[v] ||= 0 acc[v] += 1 end end |
#tercero ⇒ Documento
Obtenga el tercer documento en la base de datos para el selector de criterios.
406 407 408 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 406 def tercero eager_load([Documentos.tercero]).primero end |
#¡Tercero! ⇒ Documento
Obtén el tercer documento de la base de datos para el selector del criterio o genera un error si no se encuentra ninguno.
420 421 422 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 420 def ¡tercero! tercero || raise_document_not_found_error end |
#antepenúltimo ⇒ Documento
Obtén el tercer documento antes del último en la base de datos para el selector de los criterios.
502 503 504 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 502 def antepenúltimo eager_load([Documentos.antepenúltimo]).primero end |
#antepenúltimo! ⇒ Documento
Obtén el tercer documento desde el final en la base de datos para el selector del criterio o genera un error si no se encuentra ninguno.
516 517 518 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 516 def antepenúltimo! antepenúltimo || raise_document_not_found_error end |
#update(attributes = nil) ⇒ nil | false
Actualiza el primer documento coincidente de forma atómica.
360 361 362 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 360 def update(atributos = nulo) update_documents(atributos, [ primero ]) end |
#update_all(attributes = nil) ⇒ nil | false
Actualiza todos los documentos coincidentes de manera atómica.
372 373 374 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 372 def update_all(atributos = nulo) update_documents(atributos, entradas) end |