Módulo: Mongoide::Persistente::Incrementable

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

Overview

Define el comportamiento de las operaciones $inc.

Colapso del resumen del método de instancia

Detalles del método de instancia

#inc(incrementos) ⇒ Documento

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

Ejemplos:

Incremente los campos.

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

Parámetros:

  • incrementos (Hash)

    Los pares de incremento de campo/inc.

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|
    operaciones atómicas del proceso(incrementos) hacer |Campo, valor|
      incremento = valor.is_a?(Gran decimal) ? valor.to_f : valor
      actual = atributos[Campo]
      nuevo_valor = (actual || 0) + incremento
      atributo_de_proceso Campo, nuevo_valor Si ejecutando_atómicamente?
      atributos[Campo] = nuevo_valor
      ops[nombre_del_atributo_atómico(Campo)] = incremento
    end
    { "$inc" => ops } a no ser que ops.¿vacío?
  end
end