module Mongoid::Persistable::Minable

Defines behavior for setting a field (or fields) to the smaller of either it’s current value, or a given value.

Public Instance Methods

clamp_upper_bound(fields)
Alias for: set_min
set_min(fields) click to toggle source

Set the given field or fields to the smaller of either it’s current value, or a given value.

@example Set a field to be no more than 100.

document.min(field: 100)

@param [ Hash<Symbol | String, Comparable> ] fields The fields to

set, with corresponding maximum values.

@return [ Document ] The document.

# File lib/mongoid/persistable/minable.rb, line 22
def set_min(fields)
  prepare_atomic_operation do |ops|
    process_atomic_operations(fields) do |field, value|
      current_value = attributes[field]
      if value < current_value
        process_attribute field, value
        ops[atomic_attribute_name(field)] = value
      end
    end
    { "$min" => ops } unless ops.empty?
  end
end
Also aliased as: clamp_upper_bound