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.

Resumen del método de instancia colapsar

Detalles del método de instancia

#add_each_to_set(agregados) ⇒ nil

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

Ejemplos:

Añade el valor al conjunto.

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

Parámetros:

  • agrega (encriptada)

    Las operaciones.

Devuelve:

  • (nil)

    Nil.



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

def add_each_to_set(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 (encriptada)

    Las operaciones.

Devuelve:

  • (nil)

    Nil.



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

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

#bit(bits) ⇒ nil

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

Ejemplos:

Realiza la operación bitwise.

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

Parámetros:

  • los bits (encriptada)

    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:

Ejecute el incremento atómico.

context.inc(likes: 10)

Parámetros:

  • incs (encriptada)

    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:

Realiza la multiplicación atómica.

context.mul(likes: 10)

Parámetros:

  • factores (encriptada)

    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 de $pop en los documentos coincidentes.

Ejemplos:

Extrae el primer valor de las coincidencias.

context.pop(members: -1)

Extrae el último valor de las coincidencias.

context.pop(members: 1)

Parámetros:

  • COP (encriptada)

    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:

  • extracciones (encriptada)

    Las operaciones.

Devuelve:

  • (nil)

    Nil.



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

def tirar(extracciones)
  vista.update_many("$pull" => operaciones de recopilación(extracciones))
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:

  • extracciones (encriptada)

    Las operaciones.

Devuelve:

  • (nil)

    Nil.



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

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

#push(pushes) ⇒ nil

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

Ejemplos:

Colocar el valor en los docs coincidentes.

context.push(members: "Alan")

Parámetros:

  • empuja (encriptada)

    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(impulsos) ⇒ nil

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

Ejemplos:

Empuja los valores a los Docs correspondientes.

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

Parámetros:

  • empuja (encriptada)

    Las operaciones.

Devuelve:

  • (nil)

    Nil.



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

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

#rename(renames) ⇒ nil

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

Ejemplos:

Renombra los campos de los documentos que correspondan.

context.rename(members: :artists)

Parámetros:

  • renombramientos (encriptada)

    Las operaciones.

Devuelve:

  • (nil)

    Nil.



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

def renombrar(renombramientos)
  Operaciones = renombramientos.inyectar({}) hacer |ops, (old_name, new_name)|
    ops[old_name] = new_name.to_s
    ops
  end
  vista.update_many("$rename" => operaciones de recopilación(Operaciones))
end

#set(sets) ⇒ nil

Realiza un $set 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 (encriptada)

    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(fields) ⇒ 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 llevar el nombre de la operación de MongoDB que ejecutan.

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 (encriptada)

    Los campos con el valor mínimo al que cada uno puede configurarse.

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 tanto rompe esa convención de otros métodos similares de ser llamados por la operación MongoDB que realizan.

Realiza una operación atómica de actualización $min en el campo o campos dados. Cada campo se establecerá con el mínimo de [valor_actual, valor dado]. Esto tiene el efecto de garantizar que cada campo no sea mayor que el valor dado; en otras palabras, el valor dado es el máximo efectivo para ese campo.

Ejemplos:

Configura las “views” para que no superen 100.

context.set_min(views: 100)

Parámetros:

  • campos (encriptada)

    Los campos con el valor máximo que cada uno puede tener.

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

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

Ejemplos:

Desactive el campo en las coincidencias.

context.unset(:name)

Parámetros:

  • *deshace los cambios ([ string | Symbol | arreglo<string | Symbol> | Hash ]...)

    El/los nombre(s) del/los campo(s) a desestablecer. Si se especifica un Hash, se utilizarán sus claves independientemente de su valor, incluso si el valor es nil o false.

Devuelve:

  • (nil)

    Nil.



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

def desarmado(*No establecidos)
  vista.update_many('$unset' => collect_unset_operations(No establecidos))
end