Classe: Mongoid::Atomic::Modifiers

Herda:
Hash
  • Objeto
mostrar tudo
Definido em:
lib/mongoid/atomic/modifiers.rb

Visão geral

Essa classe contém a lógica para suportar operações atômicas no banco de banco de dados.

Recolhimento do Resumo do método de instância

Detalhes do método de instância

#add_to_set(modifications) ➤ Object

Adicione os modificadores atômicos $addToSet ao hash.

Exemplos:

Add the $addToSet modifiers.

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

Parâmetros:

  • modificações (Hash)

    O adicionar para definir modificadores.



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

def add_to_set(modificações)
  modificações.cada_pair fazer |Campo, valor|
    se add_to_sets.has_key?(Campo)
      valor.cada fazer |valid|
        add_to_sets[Campo]['$each'].push(valid)
      end
    mais
      add_to_sets[Campo] = { '$each' => valor }
    end
  end
end

#pull(modificações) ➤ Objeto

Adiciona todos os modificadores ao hash de modificadores.

Exemplos:

Adicione pull todas as operações.

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

Parâmetros:

  • modificações (Hash)

    Atrações todos os modificadores.



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

def pull(modificações)
  modificações.cada_pair fazer |Campo, valor|
    puxa[Campo] = valor
    pull_fields[Campo.dividir('.', 2)[0]] = Campo
  end
end

#pull_all(modifications) ➤ Object

Adiciona todos os modificadores ao hash de modificadores.

Exemplos:

Adicione pull todas as operações.

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

Parâmetros:

  • modificações (Hash)

    Atrações todos os modificadores.



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

def pull_all(modificações)
  modificações.cada_pair fazer |Campo, valor|
    add_operation(pull_alls, Campo, valor)
    pull_fields[Campo.dividir('.', 2)[0]] = Campo
  end
end

#push(modificações) ➤ Objeto

Adiciona modificadores push ao hash de modificadores.

Exemplos:

Adicionar operações de push.

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

Parâmetros:

  • modificações (Hash)

    The push modifiers.



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

def push(modificações)
  modificações.cada_pair fazer |Campo, valor|
    push_fields[Campo] = Campo
    mods = push_conflict?(Campo) ? conflitantes_pushes : push(s)
    add_operation(mods, Campo, { '$each' => Array.wrap(valor) })
  end
end

#set(modificações) ➤ Objeto

Adiciona operações definidas ao hash de modificadores.

Exemplos:

Adicionar operações definidas.

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

Parâmetros:

  • modificações (Hash)

    The set modifiers.



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

def set(modificações)
  modificações.cada_pair fazer |Campo, valor|
    próximo se Campo == '_id'

    mods = set_conflict?(Campo) ? conflitante_conjuntos : Conjuntos
    add_operation(mods, Campo, valor)
    set_fields[Campo.dividir('.', 2)[0]] = Campo
  end
end

#desconfigurar(modificações) ➤ Objeto

Adiciona operações de desconfiguração ao hash de modificadores.

Exemplos:

Adicionar operações de desconfiguração.

modifiers.unset([ "addresses" ])

Parâmetros:

  • modificações (Array<String>)

    Os nomes de associação a serem desconfigurados.



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 Desconfigurar(modificações)
  modificações.cada fazer |Campo|
    Campo = Campo.to_s

    se unset_conflict?(Campo)
      # Se o $set conflitante abranger todo o campo principal (não apenas um
      # subcaminhos), ele grava o estado atual completo, que já
      # reflete esta desconfiguração. Ignore o $unset - é redundante.
      próximo se unset_superseded_by_set?(Campo)

      conflitante_unsets.update(Campo => true)
    mais
      Desconfigura.update(Campo => true)
    end
  end
end