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 documentos no banco de banco de dados dentro do escopo dos critérios, sem carregar cada documento 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.



34
35
36
# Arquivo 'lib/mongoid/contextual/atomic.rb', linha 34

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.



22
23
24
# Arquivo 'lib/mongoid/contextual/atomic.rb', linha 22

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.



46
47
48
# Arquivo 'lib/mongoid/contextual/atomic.rb', linha 46

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.



58
59
60
# Arquivo 'lib/mongoid/contextual/atomic.rb', linha 58

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.



70
71
72
# Arquivo 'lib/mongoid/contextual/atomic.rb', linha 70

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.



85
86
87
# Arquivo 'lib/mongoid/contextual/atomic.rb', linha 85

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.



99
100
101
# Arquivo 'lib/mongoid/contextual/atomic.rb', linha 99

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.



111
112
113
# Arquivo 'lib/mongoid/contextual/atomic.rb', linha 111

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.



123
124
125
# Arquivo 'lib/mongoid/contextual/atomic.rb', linha 123

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.



135
136
137
# Arquivo 'lib/mongoid/contextual/atomic.rb', linha 135

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.



147
148
149
150
151
152
153
# Arquivo 'lib/mongoid/contextual/atomic.rb', linha 147

def renomear(renomeia)
  operations = renomeia.injetar({}) fazer |ops, (old_name, new_name)|
    ops[old_name] = new_name.to_s
    ops
  end
  vista.update_many("$renomear" => 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.



163
164
165
# Arquivo 'lib/mongoid/contextual/atomic.rb', linha 163

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 as "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.



223
224
225
# Arquivo 'lib/mongoid/contextual/atomic.rb', linha 223

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.



200
201
202
# Arquivo 'lib/mongoid/contextual/atomic.rb', linha 200

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.



178
179
180
# Arquivo 'lib/mongoid/contextual/atomic.rb', linha 178

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