Módulo: Mongoid::Contextual::Atomic

Definido en:
lib/mongoid/contextual/atomic.rb

Overview

Módulo Mixin incluido en Mongoid::Criteria que proporciona una interfaz de método directo a los operadores de actualización de MongoDB ($set, $pull, $inc, etc.). Estos operadores se pueden aplicar para actualizar todos los documentos en la base de datos dentro del alcance de los criterios, sin cargar cada documento en la memoria de Mongoid.

Colapso del resumen del método de instancia

Detalles del método de instancia

#add_each_to_set(agregados) ⇒ nil

Realice un $addToSet/$each atómico en los documentos coincidentes.

Ejemplos:

Añade el valor al conjunto.

context.add_each_to_set(members: ["Dave", "Bill"], genres: ["Electro", "Disco"])

Parámetros:

  • agrega (Hash)

    Las operaciones.

Devuelve:

  • (nil)

    Nil.



34
35
36
# Archivo 'lib/mongoid/contextual/atomic.rb', línea 34

def agregar_cada_uno_al_conjunto(agrega)
  vista.update_many("$addToSet" => recopilar_cada_operación(agrega))
end

#add_to_set(adds) ⇒ nil

Ejecute un $addToSet atómico en los documentos coincidentes.

Ejemplos:

Añade el valor al conjunto.

context.add_to_set(members: "Dave", genres: "Electro")

Parámetros:

  • agrega (Hash)

    Las operaciones.

Devuelve:

  • (nil)

    Nil.



22
23
24
# Archivo 'lib/mongoid/contextual/atomic.rb', línea 22

def añadir_al_conjunto(agrega)
  vista.update_many("$addToSet" => operaciones de recopilación(agrega))
end

#bit(bits) ⇒ nil

Realice una operación atómica $bit en los documentos coincidentes.

Ejemplos:

Realizar la operación bit a bit.

context.bit(likes: { and: 14, or: 4 })

Parámetros:

  • los bits (Hash)

    Las operaciones.

Devuelve:

  • (nil)

    Nil.



46
47
48
# Archivo 'lib/mongoid/contextual/atomic.rb', línea 46

def bit(los bits)
  vista.update_many("$bit" => operaciones de recopilación(los bits))
end

#inc(incs) ⇒ nil

Realice una operación atómica $inc en los documentos coincidentes.

Ejemplos:

Realizar el incremento atómico.

context.inc(likes: 10)

Parámetros:

  • incs (Hash)

    Las operaciones.

Devuelve:

  • (nil)

    Nil.



58
59
60
# Archivo 'lib/mongoid/contextual/atomic.rb', línea 58

def Inc(incs)
  vista.update_many("$inc" => operaciones de recopilación(incs))
end

#mul(factores) ⇒ nulo

Realice una operación atómica $mul en los documentos coincidentes.

Ejemplos:

Realizar la multiplicación atómica.

context.mul(likes: 10)

Parámetros:

  • factores (Hash)

    Las operaciones.

Devuelve:

  • (nil)

    Nil.



70
71
72
# Archivo 'lib/mongoid/contextual/atomic.rb', línea 70

def mul(factores)
  vista.update_many("$mul" => operaciones de recopilación(factores))
end

#pop(pops) ⇒ nil

Realice una operación atómica $pop en los documentos coincidentes.

Ejemplos:

Haga estallar el primer valor en los fósforos.

context.pop(members: -1)

Saca el último valor de los fósforos.

context.pop(members: 1)

Parámetros:

  • COP (Hash)

    Las operaciones.

Devuelve:

  • (nil)

    Nil.



85
86
87
# Archivo 'lib/mongoid/contextual/atomic.rb', línea 85

def pop(COP)
  vista.update_many("$pop" => operaciones de recopilación(COP))
end

#pull(pulls) ⇒ nil

Nota:

La extracción de expresiones aún no es compatible.

Realice una operación atómica $pull en los documentos coincidentes.

Ejemplos:

Extraer el valor de los partidos.

context.pull(members: "Dave")

Parámetros:

  • tira (Hash)

    Las operaciones.

Devuelve:

  • (nil)

    Nil.



99
100
101
# Archivo 'lib/mongoid/contextual/atomic.rb', línea 99

def tirar(tira)
  vista.update_many("$pull" => operaciones de recopilación(tira))
end

#pull_all(pulls) ⇒ nil

Realice una operación atómica $pullAll en los documentos coincidentes.

Ejemplos:

Extrae todos los valores coincidentes de las coincidencias.

context.pull_all(:members, [ "Alan", "Vince" ])

Parámetros:

  • tira (Hash)

    Las operaciones.

Devuelve:

  • (nil)

    Nil.



111
112
113
# Archivo 'lib/mongoid/contextual/atomic.rb', línea 111

def tirar_todo(tira)
  vista.update_many("$pullAll" => operaciones de recopilación(tira))
end

#push(pushes) ⇒ nil

Realice una operación atómica $push en los documentos coincidentes.

Ejemplos:

Envíe el valor a los documentos coincidentes.

context.push(members: "Alan")

Parámetros:

  • empuja (Hash)

    Las operaciones.

Devuelve:

  • (nil)

    Nil.



123
124
125
# Archivo 'lib/mongoid/contextual/atomic.rb', línea 123

def Push(empuja)
  vista.update_many("$push" => operaciones de recopilación(empuja))
end

#push_all(empuja) ⇒ nulo

Realice una operación atómica $push/$each en los documentos coincidentes.

Ejemplos:

Envíe los valores a los documentos correspondientes.

context.push_all(members: [ "Alan", "Fletch" ])

Parámetros:

  • empuja (Hash)

    Las operaciones.

Devuelve:

  • (nil)

    Nil.



135
136
137
# Archivo 'lib/mongoid/contextual/atomic.rb', línea 135

def empujar_todos(empuja)
  vista.update_many("$push" => recopilar_cada_operación(empuja))
end

#renombrar(renombrar) ⇒ nulo

Realice un $rename atómico de los campos en los documentos coincidentes.

Ejemplos:

Cambie el nombre de los campos en los documentos coincidentes.

context.rename(members: :artists)

Parámetros:

  • cambia el nombre (Hash)

    Las operaciones.

Devuelve:

  • (nil)

    Nil.



147
148
149
150
151
152
153
# Archivo 'lib/mongoid/contextual/atomic.rb', línea 147

def renombrar(cambia el nombre)
  Operaciones = cambia el nombre.inyectar({}) hacer |ops, (nombre antiguo, new_name)|
    ops[nombre antiguo] = new_name.a_s
    ops
  end
  vista.update_many("$rename" => operaciones de recopilación(Operaciones))
end

#set(sets) ⇒ nil

Realizar un conjunto atómico de campos en los documentos coincidentes.

Ejemplos:

Establezca el valor del campo en las coincidencias.

context.set(name: "Depeche Mode")

Parámetros:

  • conjuntos (Hash)

    Las operaciones.

Devuelve:

  • (nil)

    Nil.



163
164
165
# Archivo 'lib/mongoid/contextual/atomic.rb', línea 163

def conjunto(conjuntos)
  vista.update_many("$set" => operaciones de recopilación(conjuntos))
end

#set_max(campos) ⇒ nil También conocido como: clamp_lower_bound

Nota:

Debido a la existencia de Mongoid::Contextual::Aggregable::Mongo#max, este método no puede llamarse #max y, por lo tanto, rompe la convención de otros métodos similares de recibir el nombre de la operación MongoDB que realizan.

Realiza una operación de actualización atómica de $max en el campo o campos indicados. Cada campo se establecerá en el máximo de [valor_actual, valor indicado]. Esto garantiza que ningún campo sea menor que el valor indicado; en otras palabras, el valor indicado es el mínimo efectivo para ese campo.

Ejemplos:

Establezca “vistas” para que no sean menos que 100.

context.set_max(views: 100)

Parámetros:

  • campos (Hash)

    Los campos con el valor mínimo que se puede establecer en cada uno.

Devuelve:

  • (nil)

    Nil.



223
224
225
# Archivo 'lib/mongoid/contextual/atomic.rb', línea 223

def set_max(campos)
  vista.update_many("$máx" => operaciones de recopilación(campos))
end

#set_min(campos) ⇒ nil También conocido como: clamp_upper_bound

Nota:

Debido a la existencia de Mongoid::Contextual::Aggregable::Mongo#min, este método no puede llamarse #min y, por lo tanto, rompe la convención de otros métodos similares de recibir el nombre de la operación MongoDB que realizan.

Realiza una operación de actualización atómica de $min en el campo o campos indicados. Cada campo se establecerá en el mínimo de [valor_actual, valor indicado]. Esto garantiza que ningún campo sea mayor que el valor indicado; en otras palabras, el valor indicado es el máximo efectivo para ese campo.

Ejemplos:

Establezca “vistas” para que no sean más que 100.

context.set_min(views: 100)

Parámetros:

  • campos (Hash)

    Los campos con el valor máximo que se puede establecer para cada uno.

Devuelve:

  • (nil)

    Nil.



200
201
202
# Archivo 'lib/mongoid/contextual/atomic.rb', línea 200

def set_min(campos)
  vista.update_many("$min" => operaciones de recopilación(campos))
end

#unset(*unsets) ⇒ nil

Realizar un $unset atómico de un campo en los documentos coincidentes.

Ejemplos:

Desarmar el campo de los partidos.

context.unset(:name)

Parámetros:

  • *desactiva ([ Cadena | Símbolo | Matriz<Cadena | Símbolo> | Hash ]...)

    El nombre del campo o campos que se desconfigurarán. Si se especifica un hash, sus claves se usarán independientemente del valor, incluso si este es nulo o falso.

Devuelve:

  • (nil)

    Nil.



178
179
180
# Archivo 'lib/mongoid/contextual/atomic.rb', línea 178

def desarmado(*desajustes)
  vista.update_many('$unset' => operaciones de recopilación_desactivadas(desajustes))
end