Clase: Mongoid::Contextual::Memory
- Hereda:
-
Objeto
- Objeto
- Mongoid::Contextual::Memory
- 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 para query., #criterios, #criterios Los criterios para el contexto., #klass, #klass El klass para los criterios.
Resumen del método de instancia colapsar
-
#==(other) ⇒ true | false.
Verifica si el contexto es igual al otro objeto.
-
#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.
-
#¿exists?(id_or_conditions = :none) ⇒ true | false
¿Existen documentos para el contexto?
-
#quinto ⇒ Documento
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.
-
#first(limit = nil) ⇒ Documento (también: #one, #find_first)
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.
-
#cuarto ⇒ Documento
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.
-
#inc(incs) ⇒ Enumerator
Incrementa un valor en todos los documentos.
-
#initialize(criteria) ⇒ Memoria
constructor
Cree el nuevo contexto en memoria.
-
#last(limit = nil) ⇒ Document
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)
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
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.
-
#second_to_last ⇒ Documento
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.
-
#omitir(valor) ⇒ Memoria
Omite el número proporcionado de documentos.
-
#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
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.
-
#antepenúltimo ⇒ Documento
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) ⇒ 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
#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 Aggregable::Memory
#agregados, #prom, #máx, #mín, #sum
Detalles del Constructor
#initialize(criterios) ⇒ Memoria
Cree el nuevo contexto en memoria.
175 176 177 178 179 180 181 182 183 184 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 175 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 apply_sorting end |
Detalles de atributo de instancias
#documentos ⇒ Objeto (solo lectura)
Devuelve el valor de los documentos atributo.
23 24 25 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 23 def Documentos @documents end |
#la coincidencia Los documentos en memoria que cumplen con el selector.(The) ⇒ objeto (solo lectura)
23 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 23 attr_reader documento, puerta, :raíz, Selector: |
#ruta ⇒ Objeto (solo lectura)
Devuelve el valor de la ruta del atributo.
23 24 25 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 23 def ruta @path end |
#ruta La ruta atómica.(Laarutaatómica.) ⇒ Objeto (solo lectura)
23 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 23 attr_reader documento, puerta, :raíz, Selector: |
#root ⇒ Object (solo lectura)
Devuelve el valor del atributo root.
23 24 25 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 23 def root @root end |
#root El documento raíz.(Eldocumentoraíz.) ⇒ Objeto (solo lectura)
23 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 23 attr_reader documento, puerta, :raíz, Selector: |
#selector ⇒ Object (solo lectura)
Devuelve el valor del selector del atributo.
23 24 25 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 23 def selector @selector end |
#selector El selector de documento raíz.(El selector de documento raíz.) ⇒ Object (solo lectura)
23 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 23 attr_reader documento, puerta, :raíz, Selector: |
Detalles del método de instancia
#==(another) ⇒ verdadero | falso
Verifica si el contexto es igual al otro objeto.
33 34 35 36 37 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 33 def ==(Otros) return false a menos que Otros.respond_to?(entradas:) entradas == Otros.entradas end |
#borrar ⇒ nulo También conocido como: delete_all
Elimine todos los documentos de la base de datos que coincidan con el selector.
45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 45 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.
67 68 69 70 71 72 73 74 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 67 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.
85 86 87 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 85 def distinct(Campo) pluck(Campo).uniq 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.
98 99 100 101 102 103 104 105 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 98 def cada(&bloque) si ¿block_given? documentos_para_iteración.cada(&bloque) sí mismo else to_enum end end |
#¿exists?(id_or_conditions = :none) ⇒ true | false
¿Existen documentos para el contexto?
123 124 125 126 127 128 129 130 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 123 def ¿existe?(id_or_conditions = none) caso id_or_conditions cuando none entonces any? cuando nulo, false entonces false cuando encriptada entonces Memoria.Nuevo(criterios.dónde(id_or_conditions)).¿existe? else Memoria.Nuevo(criterios.dónde(_id: id_or_conditions)).¿existe? end end |
#quinta ⇒ Documento
Obtén el quinto document de la base de datos para el selector de los criterios.
456 457 458 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 456 def quinto eager_load([ Documentos.quinto ]).primero 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.
470 471 472 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 470 def ¡quinto! quinto || raise_document_not_found_error end |
#primero(límite = nil) ⇒ Documento También conocido como: uno, find_first
Obtenga el primer documento en la base de datos para el selector del criterio.
140 141 142 143 144 145 146 147 148 149 150 151 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 140 def primero(limit = nulo) use_first = limit.nil? limit ||= 1 si criterios.use_lookup? @criteria = criterios.limit(limit) Resultado = eager_load_with_lookup else Resultado = eager_load(Documentos.primero(limit)) end use_first ? Resultado.primero : Resultado end |
#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.
165 166 167 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 165 def ¡primero! primero || raise_document_not_found_error end |
#cuarto ⇒ Documento
Obtén el cuarto document en la base de datos para el selector del criterio.
432 433 434 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 432 def cuarto eager_load([ Documentos.cuarto ]).primero 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.
446 447 448 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 446 def ¡cuarto! cuarto || raise_document_not_found_error end |
#inc(incs) ⇒ Enumerator
Incrementa un valor en todos los documentos.
194 195 196 197 198 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 194 def inc(incs) cada hacer |Documento| Documento.inc(incs) end end |
#last(limit = nil) ⇒ Document
Obtén el último document en la base de datos para el selector de criterios.
208 209 210 211 212 213 214 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 208 def último(limit = nulo) si limit eager_load(Documentos.último(limit)) else eager_load([ Documentos.último ]).primero end end |
#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.
226 227 228 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 226 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.
236 237 238 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 236 def longitud Documentos.longitud end |
#limit(value) ⇒ Memoria
Limita el número de documentos que se devuelven.
249 250 251 252 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 249 def limit(Valor) sí mismo.limitando = Valor sí mismo end |
#pick(*campos) ⇒ Object | Array<Object>
Selecciona los valores de campo en la memoria.
276 277 278 279 280 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 276 def elegir(*Campos) return a menos que doc = Documentos.primero pluck_from_doc(doc, *Campos) end |
#pluck(*campos) ⇒ Array<Object> | Array<Array<Object>>
Extrae los valores de los campos en la memoria.
262 263 264 265 266 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 262 def pluck(*Campos) Documentos.map hacer |doc| pluck_from_doc(doc, *Campos) end end |
#segundo ⇒ Documento
Consigue el segundo document en la base de datos para el selector de criterios.
384 385 386 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 384 def segundo eager_load([ Documentos.segundo ]).primero 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.
398 399 400 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 398 def ¡segundo! segundo || raise_document_not_found_error end |
#segundo_para_último ⇒ Documento
Obtener el penúltimo document de la base de datos para el selector de criterios.
480 481 482 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 480 def penúltimo eager_load([ Documentos.penúltimo ]).primero 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.
494 495 496 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 494 def second_to_last! penúltimo || raise_document_not_found_error end |
#skip(valor) ⇒ Memory
Omite el número proporcionado de documentos.
336 337 338 339 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 336 def Omitir(Valor) sí mismo.saltando = Valor sí mismo end |
#sort(values) ⇒ Memory
Ordena los documentos según la especificación proporcionada.
350 351 352 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 350 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.
306 307 308 309 310 311 312 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 306 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.
324 325 326 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 324 def ¡toma! tomar || raise_document_not_found_error end |
#tally(campo) ⇒ Hash
Contabilizar los valores de los campos en la memoria.
290 291 292 293 294 295 296 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 290 def cómputo(Campo) Documentos.each_with_object({}) hacer |d, acc| v = retrieve_value_at_path(d, Campo) acc[v] ||= 0 acc[v] += 1 end end |
#tercero ⇒ Documento
Obtén el tercer document en la base de datos para el selector del criterio.
408 409 410 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 408 def tercero eager_load([ Documentos.tercero ]).primero 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.
422 423 424 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 422 def ¡tercero! tercero || raise_document_not_found_error end |
#antepenúltimo ⇒ Documento
Obtén el tercer document antes del último en la base de datos según el selector del criterio.
504 505 506 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 504 def antepenúltimo eager_load([ Documentos.antepenúltimo ]).primero 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.
518 519 520 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 518 def tercero por la cola! antepenúltimo || raise_document_not_found_error end |
#update(attributes = nil) ⇒ nil | false
Actualiza el primer documento coincidente de forma atómica.
362 363 364 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 362 def update(atributos = nulo) update_documents(atributos, [ primero ]) end |
#update_all(attributes = nil) ⇒ nil | false
Actualiza todos los documentos coincidentes de manera atómica.
374 375 376 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 374 def update_all(atributos = nulo) update_documents(atributos, entradas) end |