Clase: Mongoid::Contextual::Memoria
- Hereda:
-
Objeto
- Objeto
- Mongoid::Contextual::Memoria
- Incluye:
- Enumerable, Asociación::EagerLoadable, Agregable::Memoria, Consultable, Posicional
- Definido en:
- lib/mongoid/contextual/memoria.rb
Overview
Objeto de contexto utilizado para realizar consultas masivas y operaciones de persistencia en documentos cargados en la memoria de la aplicación. La interfaz de método de esta clase es coherente con Mongoid::Contextual::Mongo.
Colapso delresumen de atributos de instancia
-
#documentos ⇒ Objeto
solo lectura
Devuelve el valor de los documentos atributo.
- #coincidencia Los documentos en memoria que coinciden con el selector.(El) ⇒ Objeto solo lectura
-
#ruta ⇒ Objeto
solo lectura
Devuelve el valor de la ruta del atributo.
- #ruta La ruta atómica.(Theatomicpath.) ⇒ Objeto solo lectura
-
#raíz ⇒ Objeto
solo lectura
Devuelve el valor del atributo raíz.
- #root El documento raíz.(Eldocumentoraíz.) ⇒ Objeto solo lectura
-
#selector ⇒ Objeto
solo lectura
Devuelve el valor del selector de atributos.
- #selector El selector del documento raíz.(Therootdocumentselector.) ⇒ Objeto solo lectura
Atributos incluidos en 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.
Colapso del resumen del método de instancia
-
#==(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.
-
#distinto(campo) ⇒ Matriz<Object>
Obtenga los valores distintos en la base de datos para el campo proporcionado.
-
#cada ⇒ Enumerador
Iterar sobre el contexto.
-
#¿existe?(id_or_conditions =:none) ⇒ verdadero | falso
¿Existe algún documento para el contexto?
-
#quinto ⇒ Documento
Obtenga el quinto documento en la base de datos para el selector de criterios.
-
#quinto! ⇒ Documento
Obtenga el quinto documento en la base de datos para el selector de criterios o genere un error si no se encuentra ninguno.
-
#primero(límite = nulo) ⇒ Documento (también: #uno, #find_first)
Obtén el primer documento en la base de datos para el selector de criterios.
-
#first! ⇒ Document
Obtenga el primer documento en la base de datos para el selector de criterios o genere un error si no se encuentra ninguno.
-
#cuarto ⇒ Documento
Obtenga el cuarto documento en la base de datos para el selector de criterios.
-
#cuarto! ⇒ Documento
Obtenga el cuarto documento en la base de datos para el selector de criterios o genere un error si no se encuentra ninguno.
-
#inc(incs) ⇒ Enumerator
Incrementar un valor en todos los documentos.
-
#inicializar(criterios) ⇒ Memoria
constructor
Crear el nuevo contexto en memoria.
-
#last(limit = nil) ⇒ Document
Obtener el último documento en la base de datos para el selector de criterios.
-
#last! ⇒ Document
Obtenga el último documento en la base de datos para el selector de criterios o genere un error si no se encuentra ninguno.
-
#longitud ⇒ Entero (también: #tamaño)
Obtenga la longitud de los documentos coincidentes en el contexto.
-
#límite(valor) ⇒ Memoria
Limita la cantidad de documentos que se devuelven.
-
#seleccionar(*campos) ⇒ Objeto | Matriz<Object>
Selecciona los valores de campo en la memoria.
-
#pluck(*campos) ⇒ Matriz<Object> | Matriz<Matriz<Object>>
Extraiga los valores del campo en la memoria.
-
#segundo ⇒ Documento
Obtenga el segundo documento en la base de datos para el selector de criterios.
-
#segundo! ⇒ Documento
Obtenga el segundo documento en la base de datos para el selector de criterios o genere un error si no se encuentra ninguno.
-
# penúltimo ⇒ Documento
Obtener el segundo ú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.
-
#saltar(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 dado de documentos de la base de datos.
-
#take! ⇒ Document
Tome la cantidad dada de documentos de la base de datos o genere un error si no se encuentra ninguno.
-
#tally(campo) ⇒ Hash
Cuente los valores del campo en la memoria.
-
#tercero ⇒ Documento
Obtenga el tercer documento en la base de datos para el selector de criterios.
-
#tercero! ⇒ Documento
Obtenga el tercer documento en la base de datos para el selector de criterios o genere un error si no se encuentra ninguno.
-
#antepenúltimo ⇒ Documento
Obtener el tercer último documento en la base de datos para el selector de criterios.
-
#antepenúltimo! ⇒ Documento
Obtenga el tercer último documento en la base de datos para el selector de criterios o genere un error si no se encuentra ninguno.
-
#update(attributes = nil) ⇒ nil | false
Actualice atómicamente el primer documento coincidente.
-
#update_all(attributes = nil) ⇒ nil | false
Actualice todos los documentos coincidentes de forma atómica.
Métodos incluidos de Posicional
Métodos incluidos de Queryable
Métodos incluidos en 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.Seleccione hacer |doc| @root ||= doc._root @recopilación ||= raíz.Colección doc._¿partidos?(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 lector de atributos :documentos, :camino, :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 @camino end |
#ruta La ruta atómica.(Theatomicpath.) ⇒ Objeto (solo lectura)
25
|
# Archivo 'lib/mongoid/contextual/memory.rb', línea 25 lector de atributos :documentos, :camino, :raíz, :selector |
#raíz ⇒ Objeto (solo lectura)
Devuelve el valor del atributo raíz.
25 26 27 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 25 def raíz @root end |
#root El documento raíz.(Therootdocument.) ⇒ Objeto (solo lectura)
25
|
# Archivo 'lib/mongoid/contextual/memory.rb', línea 25 lector de atributos :documentos, :camino, :raíz, :selector |
#selector ⇒ Objeto (solo lectura)
Devuelve el valor del selector de atributos.
25 26 27 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 25 def selector @selector end |
#selector El selector del documento raíz.(Therootdocumentselector.) ⇒ Objeto (solo lectura)
25
|
# Archivo 'lib/mongoid/contextual/memory.rb', línea 25 lector de atributos :documentos, :camino, :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 no ser que otros.respond_to?(:entradas) entradas == otros.entradas end |
#delete ⇒ nil 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 eliminado = count remoto = map hacer |doc| preparar_eliminar(doc) doc.Enviar(:como_atributos) end a no ser que remoto.¿vacío? Colección.buscar(selector).update_one( posicionalmente(selector, "$pullAll" => { ruta => remoto }), sesión: _sesión ) end eliminado end |
#destroy ⇒ 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 eliminado = count cada hacer |doc| Documentos.delete_one(doc) doc.destruir end eliminado end |
#distinto(campo) ⇒ Matriz<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) arrancar(Campo).único end |
#cada ⇒ Enumerador
Itera sobre el contexto. Si se proporciona un bloque, se genera un documento Mongoid para cada uno; de lo contrario, se devuelve una enumeración.
99 100 101 102 103 104 105 106 107 108 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 99 def cada Si ¿bloque_dado? documentos_para_iteración.cada hacer |doc| rendimiento(doc) end yo else to_enum end end |
#¿existe?(id_or_conditions =:none) ⇒ verdadero | falso
¿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_o_condiciones = :ninguno) caso id_o_condiciones Cuando :ninguno entonces any? Cuando nulo, false entonces false Cuando Picadillo entonces Memoria.Nuevo(criterios.donde(id_o_condiciones)).¿Existe? else Memoria.Nuevo(criterios.donde(_id: id_o_condiciones)).¿Existe? end end |
#quinto ⇒ Documento
Obtenga el quinto documento en la base de datos para el selector de criterios.
454 455 456 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 454 def quinto carga ansiosa([Documentos.quinto]).primera end |
#quinto! ⇒ Documento
Obtenga el quinto documento en la base de datos para el selector de criterios o genere un error si no se encuentra ninguno.
468 469 470 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 468 def ¡quinto! quinto || generar error de documento no encontrado 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 primera(limit = nulo) Si limit carga ansiosa(Documentos.primera(limit)) else carga ansiosa([Documentos.primera]).primera end end |
#first! ⇒ Document
Obtenga el primer documento en la base de datos para el selector de criterios o genere un error si no se encuentra ninguno.
163 164 165 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 163 def ¡primero! primera || generar error de documento no encontrado end |
#cuarto ⇒ Documento
Obtenga el cuarto documento en la base de datos para el selector de criterios.
430 431 432 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 430 def cuarto carga ansiosa([Documentos.cuarto]).primera end |
#cuarto! ⇒ Documento
Obtenga el cuarto documento en la base de datos para el selector de criterios o genere un error si no se encuentra ninguno.
444 445 446 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 444 def ¡cuatro! cuarto || generar error de documento no encontrado 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
Obtener el último documento en la base de datos para el selector de criterios.
206 207 208 209 210 211 212 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 206 def última(limit = nulo) Si limit carga ansiosa(Documentos.última(limit)) else carga ansiosa([Documentos.última]).primera end end |
#last! ⇒ Document
Obtenga el último documento en la base de datos para el selector de criterios o genere un error si no se encuentra ninguno.
224 225 226 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 224 def ¡último! última || generar error de documento no encontrado end |
#longitud ⇒ Entero También conocido como: tamaño
Obtenga 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 |
#límite(valor) ⇒ Memoria
Limita la cantidad de documentos que se devuelven.
247 248 249 250 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 247 def limit(valor) yo.limitante = valor yo 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 picking(*campos) Si doc = Documentos.primera arrancar_del_doc(doc, *campos) end end |
#pluck(*campos) ⇒ Matriz<Object> | Matriz<Matriz<Object>>
Extraiga los valores del campo en la memoria.
260 261 262 263 264 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 260 def arrancar(*campos) Documentos.map hacer |doc| arrancar_del_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 carga ansiosa([Documentos.segundo]).primera end |
#segundo! ⇒ Documento
Obtenga el segundo documento en la base de datos para el selector de criterios o genere un error si no se encuentra ninguno.
396 397 398 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 396 def ¡segundo! segundo || generar error de documento no encontrado end |
# penúltimo⇒ Documento
Obtener el segundo ú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 carga ansiosa([Documentos.penúltimo]).primera end |
#¡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.
492 493 494 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 492 def second_to_last! penúltimo || generar error de documento no encontrado end |
#saltar(valor) ⇒ Memoria
Omite el número de documentos proporcionado.
334 335 336 337 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 334 def Omitir(valor) yo.salto a la comba = valor yo 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) ordenación in situ(values) y yo end |
#take(limit = nil) ⇒ Document
Tome el número dado de documentos 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 carga ansiosa(Documentos.tomar(limit)) else carga ansiosa([Documentos.primera]).primera end end |
#take! ⇒ Document
Tome la cantidad dada de documentos de la base de datos o genere un error si no se encuentra ninguno.
322 323 324 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 322 def ¡llevar! tomar || generar error de documento no encontrado end |
#tally(campo) ⇒ Hash
Cuente los valores del campo en la memoria.
288 289 290 291 292 293 294 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 288 def cuenta(Campo) return Documentos.cada_con_objeto({}) 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 carga ansiosa([Documentos.tercero]).primera end |
#¡Tercero! ⇒ Documento
Obtenga el tercer documento en la base de datos para el selector de criterios o genere un error si no se encuentra ninguno.
420 421 422 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 420 def ¡tercero! tercero || generar error de documento no encontrado end |
#antepenúltimo ⇒ Documento
Obtener el tercer último documento en la base de datos para el selector de criterios.
502 503 504 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 502 def antepenúltimo carga ansiosa([Documentos.antepenúltimo]).primera end |
#antepenúltimo! ⇒ Documento
Obtenga el tercer último documento en la base de datos para el selector de criterios o genere un error si no se encuentra ninguno.
516 517 518 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 516 def antepenúltimo! antepenúltimo || generar error de documento no encontrado end |
#update(attributes = nil) ⇒ nil | false
Actualice atómicamente el primer documento coincidente.
360 361 362 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 360 def update(atributos = nulo) update_documents(atributos, [ primera ]) end |
#update_all(attributes = nil) ⇒ nil | false
Actualice todos los documentos coincidentes de forma atómica.
372 373 374 |
# Archivo 'lib/mongoid/contextual/memory.rb', línea 372 def update_all(atributos = nulo) update_documents(atributos, entradas) end |