Módulo: Mongoid::Persistable::Incrementable

Estendido por:
ActiveSupport::Concern
Incluído em:
Mongoid::Persistable
Definido em:
lib/mongoid/persistable/incrementable.rb

Visão geral

Define o comportamento das operações $inc.

Recolhimento do Resumo do método de instância

Detalhes do método de instância

#inc(incrementos) ➤ Documento

Aumente os campos fornecidos pelos valores correspondentes. Os valores podem ser positivos ou negativos e, se não existir nenhum valor para o campo, ele será definido com o valor fornecido.

Exemplos:

Incremente os campos.

document.inc(score: 10, place: 1, lives: -10)

Parâmetros:

  • incrementos (Hash)

    O campo/inc pares de incremento.

Retorna:



21
22
23
24
25
26
27
28
29
30
31
32
33
# Arquivo 'lib/mongoid/persistable/incrementable.rb', linha 21

def inc(incrementos)
  prepare_atomic_operation fazer |ops|
    process_atomic_operations(incrementos) fazer |Campo, valor|
      Incremento = valor.is_a?(BigDecimal) ? valor.to_f : valor
      Current = attributes[Campo]
      new_value = (Current || 0) + Incremento
      process_attribute Campo, new_value se execution_atomicly?
      attributes[Campo] = new_value
      ops[atomic_attribute_name(Campo)] = Incremento
    end
    { "$inc" => ops } a menos que ops.vazio?
  end
end