123456789_123456789_123456789_123456789_123456789_

Module: Mongoid::Selectable

Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Included In:
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
self, ActiveSupport::Concern
Defined in: lib/mongoid/selectable.rb

Overview

Provides behavior for generating the selector for a specific document.

Instance Method Summary

Instance Method Details

#atomic_selectorHash

Get the atomic selector for the document. This is a hash in the simplest case { “_id” => id }, but can become more complex for embedded documents and documents that use a shard key.

Examples:

Get the document’s atomic selector.

document.atomic_selector

Returns:

  • (Hash)

    The document’s selector.

[ GitHub ]

  
# File 'lib/mongoid/selectable.rb', line 18

def atomic_selector
  embedded? ? embedded_atomic_selector : root_atomic_selector_in_db
end

#embedded_atomic_selectorHash (private)

This method is for internal use only.

Get the atomic selector for an embedded document.

Examples:

Get the embedded atomic selector.

document.embedded_atomic_selector

Returns:

  • (Hash)

    The embedded document selector.

[ GitHub ]

  
# File 'lib/mongoid/selectable.rb', line 32

def embedded_atomic_selector
  if persisted? && _id_changed?
    _parent.atomic_selector
  else
    _parent.atomic_selector.merge("#{atomic_path}._id" => _id)
  end
end

#root_atomic_selector_in_dbHash (private)

This method is for internal use only.

Get the atomic selector that would match the existing version of the root document.

Returns:

  • (Hash)

    The root document selector.

[ GitHub ]

  
# File 'lib/mongoid/selectable.rb', line 46

def root_atomic_selector_in_db
  { "_id" => _id }.merge!(shard_key_selector_in_db)
end