Módulo: Mongoid::Persistable::Incrementable

Ampliado por:
ActiveSupport::Concern
Incluido en:
Mongoid::Persistable
Definido en:
lib/mongoide/persistable/incrementable.rb

Overview

Define el comportamiento de las operaciones $inc.

Resumen del método de instancia colapsar

Detalles del método de instancia

#inc(incrementos) ⇒ Documento

Incrementa los campos proporcionados por los valores correspondientes. Los valores pueden ser positivos o negativos, y si no existe ningún valor para el campo, se asignará con el valor proporcionado.

Ejemplos:

Incremente los campos.

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

Parámetros:

  • incrementos (encriptada)

    Los pares campo/inc incremento.

Devuelve:



21
22
23
24
25
26
27
28
29
30
31
32
33
# Archivo 'lib/mongoid/persistable/incrementable.rb', línea 21

def Inc(incrementos)
  preparar_operación_atómica hacer |ops|
    proceso_operaciones_atómicas(incrementos) hacer |Campo, Valor|
      incremento = Valor.is_a?(Gran decimal) ? Valor.to_f : Valor
      Actual = atributos[Campo]
      nuevo_valor = (Actual || 0) + incremento
      process_attribute Campo, nuevo_valor si ejecutando_atómicamente?
      atributos[Campo] = nuevo_valor
      ops[atomic_attribute_name(Campo)] = incremento
    end
    { "$inc" => ops } a menos que ops.¿vacío?
  end
end