Module: Mongoid::Indexes::ClassMethods

Defined in:
lib/mongoid/indexes.rb

Overview

:nodoc

Instance Method Summary collapse

Instance Method Details

#add_indexesObject

Add the default indexes to the root document if they do not already exist. Currently this is only _type.

Examples:

Add Mongoid internal indexes.

Person.add_indexes


30
31
32
33
34
35
# File 'lib/mongoid/indexes.rb', line 30

def add_indexes
  if hereditary? && !index_options[:_type]
    self.index_options[:_type] = {:unique => false, :background => true}
  end
  create_indexes if Mongoid.autocreate_indexes
end

#create_indexesObject

Send the actual index creation comments to the MongoDB driver

Examples:

Create the indexes for the class.

Person.create_indexes


17
18
19
20
21
22
23
# File 'lib/mongoid/indexes.rb', line 17

def create_indexes
  return unless index_options
  current_collection = self._collection || set_collection
  index_options.each_pair do |name, options|
    current_collection.create_index(name, options)
  end
end

#index(name, options = { :unique => false }) ⇒ Object

Adds an index on the field specified. Options can be :unique => true or :unique => false. It will default to the latter.

Examples:

Create a basic index.

class Person
  include Mongoid::Document
  field :name, :type => String
  index :name, :background => true

Parameters:

  • name (Symbol)

    The name of the field.

  • options (Hash) (defaults to: { :unique => false })

    The index options.



48
49
50
51
# File 'lib/mongoid/indexes.rb', line 48

def index(name, options = { :unique => false })
  self.index_options[name] = options
  create_indexes if Mongoid.autocreate_indexes
end