Módulo: Mongoid::Contextual::Atomic

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

Visão geral

Módulo Mixin incluído no Mongoid::Criteria que fornece uma interface de método direto para os operadores de atualização do MongoDB ($set, $pull, $inc, etc.) Esses operadores podem ser aplicados para atualizar todos os document no banco de dados dentro do escopo dos critérios, sem carregar cada document na memória do Mongoid.

Recolhimento do Resumo do método de instância

Detalhes do método de instância

#add_each_to_set(adds) ➤ nil

Execute um $addToSet/$each atômico nos documentos correspondentes.

Exemplos:

Adicione o valor ao conjunto.

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

Parâmetros:

  • adiciona (Hash)

    As operações.

Retorna:

  • (nil)

    Nil.



31
32
33
# Arquivo 'lib/mongoid/contextual/atomic.rb', linha 31

def add_each_to_set(adiciona)
  vista.update_many('$addToSet' => collection_each_operations(adiciona))
end

#add_to_set(adds) ⇒ nil

Execute um $addToSet atômico nos documentos correspondentes.

Exemplos:

Adicione o valor ao conjunto.

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

Parâmetros:

  • adiciona (Hash)

    As operações.

Retorna:

  • (nil)

    Nil.



19
20
21
# Arquivo 'lib/mongoid/contextual/atomic.rb', linha 19

def add_to_set(adiciona)
  vista.update_many('$addToSet' => collection_operations(adiciona))
end

#bit(bits) ⇒ nil

Execute uma operação atômica $bit nos documentos correspondentes.

Exemplos:

Execute a operação bitwise.

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

Parâmetros:

  • bits (Hash)

    As operações.

Retorna:

  • (nil)

    Nil.



43
44
45
# Arquivo 'lib/mongoid/contextual/atomic.rb', linha 43

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

#inc(incs) ⇒ nil

Execute uma operação atômica $inc nos documentos correspondentes.

Exemplos:

Executar o incremento atômico.

context.inc(likes: 10)

Parâmetros:

  • incs (Hash)

    As operações.

Retorna:

  • (nil)

    Nil.



55
56
57
# Arquivo 'lib/mongoid/contextual/atomic.rb', linha 55

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

#mul(fatores) ➤ nil

Execute uma operação atômica $mul nos documentos correspondentes.

Exemplos:

Realizar a multiplicação atômica.

context.mul(likes: 10)

Parâmetros:

  • fatores (Hash)

    As operações.

Retorna:

  • (nil)

    Nil.



67
68
69
# Arquivo 'lib/mongoid/contextual/atomic.rb', linha 67

def mul(fatores)
  vista.update_many('$mul' => collection_operations(fatores))
end

#pop(pops) ➤ nil

Execute uma operação $pop atômica nos documentos correspondentes.

Exemplos:

Estale o primeiro valor nas correspondências.

context.pop(members: -1)

Pop o último valor nas correspondências.

context.pop(members: 1)

Parâmetros:

  • pops (Hash)

    As operações.

Retorna:

  • (nil)

    Nil.



82
83
84
# Arquivo 'lib/mongoid/contextual/atomic.rb', linha 82

def Pop(pops)
  vista.update_many('$pop' => collection_operations(pops))
end

#pull(pulls) ➤ nil

Observação:

A extração de expressões ainda não é suportada.

Execute uma operação atômica $pull nos documentos correspondentes.

Exemplos:

Puxe o valor das correspondências.

context.pull(members: "Dave")

Parâmetros:

  • puxa (Hash)

    As operações.

Retorna:

  • (nil)

    Nil.



96
97
98
# Arquivo 'lib/mongoid/contextual/atomic.rb', linha 96

def pull(puxa)
  vista.update_many('$pull' => collection_operations(puxa))
end

#pull_all(pulls) ⇒ nil

Execute uma operação atômica $pullAll nos documentos correspondentes.

Exemplos:

Puxe todos os valores correspondentes das correspondências.

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

Parâmetros:

  • puxa (Hash)

    As operações.

Retorna:

  • (nil)

    Nil.



108
109
110
# Arquivo 'lib/mongoid/contextual/atomic.rb', linha 108

def pull_all(puxa)
  vista.update_many('$pullAll' => collection_operations(puxa))
end

#push(pushes) ➤ nil

Execute uma operação $push atômica nos documentos correspondentes.

Exemplos:

Envie o valor para os Docs correspondentes .

context.push(members: "Alan")

Parâmetros:

  • push(s) (Hash)

    As operações.

Retorna:

  • (nil)

    Nil.



120
121
122
# Arquivo 'lib/mongoid/contextual/atomic.rb', linha 120

def push(push(s))
  vista.update_many('$push' => collection_operations(push(s)))
end

#push_all(pushes) ➤ nil

Execute uma operação atômica $push/$each nos documentos correspondentes.

Exemplos:

Envie os valores para os Docs correspondentes .

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

Parâmetros:

  • push(s) (Hash)

    As operações.

Retorna:

  • (nil)

    Nil.



132
133
134
# Arquivo 'lib/mongoid/contextual/atomic.rb', linha 132

def push_all(push(s))
  vista.update_many('$push' => collection_each_operations(push(s)))
end

#rename(renomeia) ➤ nil

Executa um $rename atômico dos campos nos documentos correspondentes.

Exemplos:

Renomeie os campos nos documentos correspondentes.

context.rename(members: :artists)

Parâmetros:

  • renomeia (Hash)

    As operações.

Retorna:

  • (nil)

    Nil.



144
145
146
147
148
149
# Arquivo 'lib/mongoid/contextual/atomic.rb', linha 144

def renomear(renomeia)
  operations = renomeia.cada_com_objeto({}) fazer |(old_name, new_name), ops|
    ops[old_name] = new_name.to_s
  end
  vista.update_many('$rename' => collection_operations(operations))
end

#set(sets) ➤ nil

Executar um $set atômico de campos nos documentos correspondentes.

Exemplos:

Defina o valor do campo nas correspondências.

context.set(name: "Depeche Mode")

Parâmetros:

  • Conjuntos (Hash)

    As operações.

Retorna:

  • (nil)

    Nil.



159
160
161
# Arquivo 'lib/mongoid/contextual/atomic.rb', linha 159

def set(Conjuntos)
  vista.update_many('$set' => collection_operations(Conjuntos))
end

#set_max(fields) ➤ nil Também conhecido como: chunk_lower_bound

Observação:

Devido à existência de Mongoid::Contextual::Aggregable::Mongo#max, este método não pode ser nomeado como #max e, portanto, quebra a convenção de outros métodos semelhantes de serem nomeados para a operação do MongoDB que executam.

Executa uma operação de atualização atômica $max no campo ou campos fornecidos. Cada campo será definido para o máximo de [current_value, determinado valor]. Isso tem o efeito de garantir que cada campo não seja menor que o valor fornecido; em outras palavras, o valor fornecido é o mínimo efetivo para esse campo.

Exemplos:

Defina "visualizações" para não serem inferiores a 100.

context.set_max(views: 100)

Parâmetros:

  • Campos (Hash)

    Os campos com o valor mínimo para o qual cada um pode ser definido.

Retorna:

  • (nil)

    Nil.



219
220
221
# Arquivo 'lib/mongoid/contextual/atomic.rb', linha 219

def set_max(Campos)
  vista.update_many('$max' => collection_operations(Campos))
end

#set_min(fields) ➤ nil Também conhecido como: grampeador_upper_bound

Observação:

Devido à existência de Mongoid::Contextual::aggregable::Mongo#min, este método não pode ser nomeado como #min e, portanto, quebra essa convenção de outros métodos semelhantes de serem nomeados para a operação MongoDB que executam.

Executa uma operação de atualização atômica $min no campo ou campos fornecidos. Cada campo será definido como o mínimo de [current_value, determinado valor]. Isso tem o efeito de garantir que cada campo não seja maior que o valor fornecido; em outras palavras, o valor fornecido é o máximo efetivo para esse campo.

Exemplos:

Defina "visualizações" para no máximo 100.

context.set_min(views: 100)

Parâmetros:

  • Campos (Hash)

    Os campos com o valor máximo para o qual cada um pode ser definido.

Retorna:

  • (nil)

    Nil.



196
197
198
# Arquivo 'lib/mongoid/contextual/atomic.rb', linha 196

def set_min(Campos)
  vista.update_many('$min' => collection_operations(Campos))
end

#unset(*unsets) ⇒ nil

Executar um $unset atômico de um campo nos documentos correspondentes.

Exemplos:

Desarrume o campo para as correspondências.

context.unset(:name)

Parâmetros:

  • *desconfigura ([ string | Símbolo | Array <string | Símbolo> | Hash ]...)

    O(s) nome(s) do(s) campo(s) a ser(em) desconfigurado(s). Se um Hash for especificado, suas chaves serão usadas independentemente do valor, mesmo que o valor seja nulo ou falso.

Retorna:

  • (nil)

    Nil.



174
175
176
# Arquivo 'lib/mongoid/contextual/atomic.rb', linha 174

def Desconfigurar(*Desconfigura)
  vista.update_many('$unset' => collection_unset_operations(Desconfigura))
end