Module Mongoid::Document
In: lib/mongoid/document.rb
lib/mongoid/railties/document.rb

This is the base module for all domain objects that need to be persisted to the database as documents.

Methods

<=>   ==   ===   _destroy   as_document   becomes   eql?   freeze   frozen?   hash   identify   new   to_a  

Included Modules

Mongoid::Components

Attributes

new_record  [R] 

Public Class methods

Instantiate a new Document, setting the Document‘s attributes if given. If no attributes are provided, they will be initialized with an empty Hash.

If a primary key is defined, the document‘s id will be set to that key, otherwise it will be set to a fresh +BSON::ObjectId+ string.

@example Create a new document.

  Person.new(:title => "Sir")

@param [ Hash ] attrs The attributes to set up the document with. @param [ Hash ] options A mass-assignment protection options. Supports

  :as and :without_protection

@return [ Document ] A new document.

Public Instance methods

Default comparison is via the string version of the id.

@example Compare two documents.

  person <=> other_person

@param [ Document ] other The document to compare with.

@return [ Integer ] -1, 0, 1.

Performs equality checking on the document ids. For more robust equality checking please override this method.

@example Compare for equality.

  document == other

@param [ Document, Object ] other The other object to compare with.

@return [ true, false ] True if the ids are equal, false if not.

Performs class equality checking.

@example Compare the classes.

  document === other

@param [ Document, Object ] other The other object to compare with.

@return [ true, false ] True if the classes are equal, false if not.

Used in conjunction with fields_for to build a form element for the destruction of this association. Always returns false because Mongoid only supports immediate deletion of associations.

See ActionView::Helpers::FormHelper::fields_for for more info.

Return a hash of the entire document hierarchy from this document and below. Used when the attributes are needed for everything and not just the current document.

@example Get the full hierarchy.

  person.as_document

@return [ Hash ] A hash of all attributes in the hierarchy.

Returns an instance of the specified class with the attributes and errors of the current document.

@example Return a subclass document as a superclass instance.

  manager.becomes(Person)

@raise [ ArgumentError ] If the class doesn‘t include Mongoid::Document

@param [ Class ] klass The class to become.

@return [ Document ] An instance of the specified class.

Delegates to ==. Used when needing checks in hashes.

@example Perform equality checking.

  document.eql?(other)

@param [ Document, Object ] other The object to check against.

@return [ true, false ] True if equal, false if not.

Freezes the internal attributes of the document.

@example Freeze the document

  document.freeze

@return [ Document ] The document.

@since 2.0.0

Checks if the document is frozen

@example Check if frozen

  document.frozen?

@return [ true, false ] True if frozen, else false.

@since 2.0.0

Delegates to id in order to allow two records of the same type and id to work with something like:

  [ Person.find(1), Person.find(2), Person.find(3) ] &
  [ Person.find(1), Person.find(4) ] # => [ Person.find(1) ]

@example Get the hash.

  document.hash

@return [ Integer ] The hash of the document‘s id.

Generate an id for this Document.

@example Create the id.

  person.identify

@return [ BSON::ObjectId, String ] A newly created id.

Return an array with this Document only in it.

@example Return the document in an array.

  document.to_a

@return [ Array<Document> ] An array with the document as its only item.

[Validate]