Class: Mongoid::Persistence::Atomic::AddToSet
- Defined in:
- lib/mongoid/persistence/atomic/add_to_set.rb
Overview
This class provides the ability to perform an explicit $addToSet modification on a specific field.
Instance Attribute Summary
Attributes inherited from Operation
#document, #field, #options, #value
Instance Method Summary collapse
-
#persist ⇒ Object
Sends the atomic $addToSet operation to the database.
Methods inherited from Operation
Methods included from Safe
Constructor Details
This class inherits a constructor from Mongoid::Persistence::Atomic::Operation
Instance Method Details
#persist ⇒ Object
Sends the atomic $addToSet operation to the database.
18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/mongoid/persistence/atomic/add_to_set.rb', line 18 def persist document[field] = [] unless document[field] values = document.send(field) values.push(value) unless values.include?(value) values.tap do if document.persisted? document.collection.update(document._selector, operation("$addToSet"), ) document.changes.delete(field.to_s) end end end |