module Mongoid::Persistable::Incrementable
Defines behaviour for $inc operations.
@since 4.0.0
Public Instance Methods
inc(increments)
click to toggle source
Increment the provided fields by the corresponding values. Values can be positive or negative, and if no value exists for the field it will be set with the provided value.
@example Increment the fields.
document.inc(score: 10, place: 1, lives: -10)
@param [ Hash ] increments The field/inc increment pairs.
@return [ Document ] The document.
@since 4.0.0
# File lib/mongoid/persistable/incrementable.rb, line 22 def inc(increments) prepare_atomic_operation do |ops| process_atomic_operations(increments) do |field, value| increment = value.__to_inc__ current = attributes[field] attributes[field] = (current || 0) + increment ops[atomic_attribute_name(field)] = increment end { "$inc" => ops } unless ops.empty? end end