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 pueden aplicarse para actualizar todos los document de la base de datos dentro del alcance de los criterios, sin cargar cada document 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:

Agrega el valor al conjunto.

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

Parámetros:

  • agrega (encriptada)

    Las operaciones.

Devuelve:

  • (nil)

    Nil.



31
32
33
# Archivo 'lib/mongoid/contextual/atomic.rb', línea 31

def add_each_to_set(agrega)
  vista.update_many('$addToSet' => collect_each_operations(agrega))
end

#add_to_set(adds) ⇒ nil

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

Ejemplos:

Agrega el valor al conjunto.

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

Parámetros:

  • agrega (encriptada)

    Las operaciones.

Devuelve:

  • (nil)

    Nil.



19
20
21
# Archivo 'lib/mongoid/contextual/atomic.rb', línea 19

def Añadir a conjunto(agrega)
  vista.update_many('$addToSet' => collect_operations(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:

  • bits (encriptada)

    Las operaciones.

Devuelve:

  • (nil)

    Nil.



43
44
45
# Archivo 'lib/mongoid/contextual/atomic.rb', línea 43

def Bit(bits)
  vista.update_many('$bit' => collect_operations(bits))
end

#inc(incs) ⇒ nil

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

Ejemplos:

Ejecute el incremento atómico.

context.inc(likes: 10)

Parámetros:

  • incs (encriptada)

    Las operaciones.

Devuelve:

  • (nil)

    Nil.



55
56
57
# Archivo 'lib/mongoid/contextual/atomic.rb', línea 55

def inc(incs)
  vista.update_many('$inc' => collect_operations(incs))
end

#mul(factores) ⇒ nil

Realiza una operación atómica $mul en los documentos que coincidan.

Ejemplos:

Realiza la multiplicación atómica.

context.mul(likes: 10)

Parámetros:

  • factores (encriptada)

    Las operaciones.

Devuelve:

  • (nil)

    Nil.



67
68
69
# Archivo 'lib/mongoid/contextual/atomic.rb', línea 67

def mul(factores)
  vista.update_many('$mul' => collect_operations(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:

  • Pops (encriptada)

    Las operaciones.

Devuelve:

  • (nil)

    Nil.



82
83
84
# Archivo 'lib/mongoid/contextual/atomic.rb', línea 82

def pop(Pops)
  vista.update_many('$pop' => collect_operations(Pops))
end

#pull(pulls) ⇒ nil

Nota:

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

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

Ejemplos:

Extrae el valor de las coincidencias.

context.pull(members: "Dave")

Parámetros:

  • extracciones (encriptada)

    Las operaciones.

Devuelve:

  • (nil)

    Nil.



96
97
98
# Archivo 'lib/mongoid/contextual/atomic.rb', línea 96

def tirar(extracciones)
  vista.update_many('$pull' => collect_operations(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.



108
109
110
# Archivo 'lib/mongoid/contextual/atomic.rb', línea 108

def pull_all(extracciones)
  vista.update_many('$pullAll' => collect_operations(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.



120
121
122
# Archivo 'lib/mongoid/contextual/atomic.rb', línea 120

def push(empuja)
  vista.update_many('$push' => collect_operations(empuja))
end

#push_all(impulsos) ⇒ nil

Realizar una operación atómica $push/$each en los documentos correspondientes.

Ejemplos:

Empuja los valores a los Docs correspondientes.

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

Parámetros:

  • empuja (encriptada)

    Las operaciones.

Devuelve:

  • (nil)

    Nil.



132
133
134
# Archivo 'lib/mongoid/contextual/atomic.rb', línea 132

def empujar todo(empuja)
  vista.update_many('$push' => collect_each_operations(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.



144
145
146
147
148
149
# Archivo 'lib/mongoid/contextual/atomic.rb', línea 144

def renombrar(renombramientos)
  Operaciones = renombramientos.each_with_object({}) hacer |(old_name, new_name), ops|
    ops[old_name] = new_name.to_s
  end
  vista.update_many('$rename' => collect_operations(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.



159
160
161
# Archivo 'lib/mongoid/contextual/atomic.rb', línea 159

def Configura(conjuntos)
  vista.update_many('$set' => collect_operations(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 atómica de actualización $max en el campo o campos indicados. Cada campo se establecerá en el valor máximo de [valor_actual, valor dado]. Esto tiene la consecuencia de asegurar que cada campo no sea menor que el valor dado; es decir, el valor dado es el mínimo efectivo para ese campo.

Ejemplos:

Configura "vistas" para que no sean menos de 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.



219
220
221
# Archivo 'lib/mongoid/contextual/atomic.rb', línea 219

def set_max(Campos)
  vista.update_many('$max' => collect_operations(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:

Establece las "vistas" para que no sean más de 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.



196
197
198
# Archivo 'lib/mongoid/contextual/atomic.rb', línea 196

def set_min(Campos)
  vista.update_many('$min' => collect_operations(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.



174
175
176
# Archivo 'lib/mongoid/contextual/atomic.rb', línea 174

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