Clase: Mongoid::Atomic::Modifiers

Hereda:
encriptada
  • Objeto
Mostrar todo
Definido en:
lib/mongoid/atomic/modifiers.rb

Overview

Esta clase contiene la lógica para admitir operaciones atómicas en la base de datos.

Resumen del método de instancia colapsar

Detalles del método de instancia

#add_to_set(modificaciones) ⇒ objeto

Agrega los modificadores atómicos $addToSet al hash.

Ejemplos:

Add the $addToSet modifiers.

modifiers.add_to_set({ "preference_ids" => [ "one" ] })

Parámetros:

  • modificaciones (encriptada)

    Los modificadores de agregar a set.



14
15
16
17
18
19
20
21
22
23
24
# File 'lib/mongoid/atomic/modifiers.rb', line 14

def Añadir a conjunto(modificaciones)
  modificaciones.each_pair hacer |Campo, Valor|
    si Agregar a sets.has_key?(Campo)
      Valor.cada hacer |val|
        Agregar a sets[Campo]['$each'].push(val)
      end
    else
      Agregar a sets[Campo] = { '$each' => Valor }
    end
  end
end

#pull(modificaciones) ⇒ Objeto

Agrega todos los modificadores extractados al hash de modificadores.

Ejemplos:

Agrega todas las operaciones de retiro.

modifiers.pull({ "addresses" => { "_id" => { "$in" => [ 1, 2, 3 ]}}})

Parámetros:

  • modificaciones (encriptada)

    El extraer todos los modificadores.



45
46
47
48
49
50
# File 'lib/mongoid/atomic/modifiers.rb', line 45

def tirar(modificaciones)
  modificaciones.each_pair hacer |Campo, Valor|
    extracciones[Campo] = Valor
    pull_fields[Campo.división('.', 2)[0]] = Campo
  end
end

#pull_all(modificaciones) ⇒ objeto

Agrega todos los modificadores extractados al hash de modificadores.

Ejemplos:

Agrega todas las operaciones de retiro.

modifiers.pull_all({ "addresses" => { "street" => "Bond" }})

Parámetros:

  • modificaciones (encriptada)

    El extraer todos los modificadores.



32
33
34
35
36
37
# File 'lib/mongoid/atomic/modifiers.rb', line 32

def pull_all(modificaciones)
  modificaciones.each_pair hacer |Campo, Valor|
    add_operation(pull_alls, Campo, Valor)
    pull_fields[Campo.división('.', 2)[0]] = Campo
  end
end

#push(modificaciones) ⇒ Objeto

Adds push modifiers to the modifiers hash.

Ejemplos:

Añade operaciones push.

modifiers.push({ "addresses" => { "street" => "Bond" }})

Parámetros:

  • modificaciones (encriptada)

    The push modifiers.



58
59
60
61
62
63
64
# File 'lib/mongoid/atomic/modifiers.rb', line 58

def push(modificaciones)
  modificaciones.each_pair hacer |Campo, Valor|
    push_fields[Campo] = Campo
    mods = ¿conflicto_de_empuje?(Campo) ? conflicting_pushes : empuja
    add_operation(mods, Campo, { '$each' => Arreglo.ajustar(Valor) })
  end
end

#set(modificaciones) ⇒ objeto

Agrega operaciones de conjunto al hash de modificadores.

Ejemplos:

Agrega operaciones de conjunto.

modifiers.set({ "title" => "sir" })

Parámetros:

  • modificaciones (encriptada)

    The set modifiers.



72
73
74
75
76
77
78
79
80
# File 'lib/mongoid/atomic/modifiers.rb', line 72

def Configura(modificaciones)
  modificaciones.each_pair hacer |Campo, Valor|
    Next si Campo == '_id'

    mods = set_conflict?(Campo) ? conflicting_sets : conjuntos
    add_operation(mods, Campo, Valor)
    set_fields[Campo.división('.', 2)[0]] = Campo
  end
end

#unset(modificaciones) ⇒ Objeto

Añade operaciones unset al hash de modificadores.

Ejemplos:

Agrega operaciones unset.

modifiers.unset([ "addresses" ])

Parámetros:

  • modificaciones (arreglo<String>)

    Los nombres de asociaciones sin definir.



88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/mongoid/atomic/modifiers.rb', line 88

def Sin establecer(modificaciones)
  modificaciones.cada hacer |Campo|
    Campo = Campo.to_s

    si ¿conflicto_deseleccionado?(Campo)
      # Si el $set en conflicto cubre todo el campo principal (no solo un
      # sub-path), escribe el estado actual completo, que ya
      # refleja este valor no establecido. Sáltate $unset: es redundante.
      Next si unset_superseded_by_set?(Campo)

      conflicting_unsets.update(Campo => true)
    else
      No establecidos.update(Campo => true)
    end
  end
end