module Mongoid::Persistable::Unsettable

Defines behavior for $unset operations.

@since 4.0.0

Public Instance Methods

unset(*fields) click to toggle source

Perform an $unset operation on the provided fields and in the values in the document in memory.

@example Unset the values.

document.unset(:first_name, :last_name, :middle)

@param [ Array<String, Symbol> ] fields The names of the fields to

unset.

@return [ Document ] The document.

@since 4.0.0

# File lib/mongoid/persistable/unsettable.rb, line 25
def unset(*fields)
  prepare_atomic_operation do |ops|
    fields.flatten.each do |field|
      normalized = database_field_name(field)
      if executing_atomically?
        process_attribute normalized, nil
      else
        attributes.delete(normalized)
      end
      ops[atomic_attribute_name(normalized)] = true
    end
    { "$unset" => ops }
  end
end