Class: Mongoid::Persistence::InsertEmbedded
- Defined in:
- lib/mongoid/persistence/insert_embedded.rb
Overview
Insert is a persistence command responsible for taking a document that has not been saved to the database and saving it. This specific class handles the case when the document is embedded in another.
The underlying query resembles the following MongoDB query:
collection.insert(
{ "_id" : 1, "field" : "value" },
false
);
Instance Attribute Summary
Attributes inherited from Command
#collection, #document, #klass, #options, #selector, #suppress, #validate
Instance Method Summary collapse
-
#persist ⇒ Object
Insert the new document in the database.
Methods inherited from Command
Methods included from Safe
Constructor Details
This class inherits a constructor from Mongoid::Persistence::Command
Instance Method Details
#persist ⇒ Object
Insert the new document in the database. If the document’s parent is a new record, we will call save on the parent, otherwise we will $push the document onto the parent.
Example:
Insert.persist
Returns:
The Document
, whether the insert succeeded or not.
28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/mongoid/persistence/insert_embedded.rb', line 28 def persist return document if validate && document.invalid?(:create) parent = document._parent if parent.new_record? parent.insert else update = { document._inserter => { document._position => document.as_document } } collection.update(parent._selector, update, .merge(:multi => false)) document.new_record = false document.move_changes end document end |