Module: Mongoid::Criterion::Optional

Included in:
Mongoid::Criteria
Defined in:
lib/mongoid/criterion/optional.rb

Instance Method Summary collapse

Instance Method Details

#cacheObject

Tells the criteria that the cursor that gets returned needs to be cached. This is so multiple iterations don’t hit the database multiple times, however this is not advisable when working with large data sets as the entire results will get stored in memory.

Example:

criteria.cache



13
14
15
# File 'lib/mongoid/criterion/optional.rb', line 13

def cache
  @options.merge!(:cache => true); self
end

#cached?Boolean

Will return true if the cache option has been set.

Example:

criteria.cached?

Returns:



22
23
24
# File 'lib/mongoid/criterion/optional.rb', line 22

def cached?
  @options[:cache] == true
end

#enslaveObject

Flags the criteria to execute against a read-only slave in the pool instead of master.

Example:

criteria.enslave



32
33
34
# File 'lib/mongoid/criterion/optional.rb', line 32

def enslave
  @options.merge!(:enslave => true); self
end

#enslaved?Boolean

Will return true if the criteria is enslaved.

Example:

criteria.enslaved?

Returns:



41
42
43
# File 'lib/mongoid/criterion/optional.rb', line 41

def enslaved?
  @options[:enslave] == true
end

#extras(extras) ⇒ Object

Adds a criterion to the Criteria that specifies additional options to be passed to the Ruby driver, in the exact format for the driver.

Options:

extras: A Hash that gets set to the driver options.

Example:

criteria.extras(:limit => 20, :skip => 40)

Returns: self



57
58
59
# File 'lib/mongoid/criterion/optional.rb', line 57

def extras(extras)
  @options.merge!(extras); filter_options; self
end

#id(*args) ⇒ Object

Adds a criterion to the Criteria that specifies an id that must be matched.

Options:

object_id: A String representation of a BSON::ObjectId

Example:

criteria.id("4ab2bc4b8ad548971900005c")

Returns: self



72
73
74
75
# File 'lib/mongoid/criterion/optional.rb', line 72

def id(*args)
  (args.flatten.size > 1) ? self.in(:_id => args.flatten) : (@selector[:_id] = args.first)
  self
end

#limit(value = 20) ⇒ Object

Adds a criterion to the Criteria that specifies the maximum number of results to return. This is mostly used in conjunction with skip() to handle paginated results.

Options:

value: An Integer specifying the max number of results. Defaults to 20.

Example:

criteria.limit(100)

Returns: self



90
91
92
# File 'lib/mongoid/criterion/optional.rb', line 90

def limit(value = 20)
  @options[:limit] = value; self
end

#offset(*args) ⇒ Object

Returns the offset option. If a per_page option is in the list then it will replace it with a skip parameter and return the same value. Defaults to 20 if nothing was provided.



97
98
99
# File 'lib/mongoid/criterion/optional.rb', line 97

def offset(*args)
  args.size > 0 ? skip(args.first) : @options[:skip]
end

#order_by(params = []) ⇒ Object

Adds a criterion to the Criteria that specifies the sort order of the returned documents in the database. Similar to a SQL “ORDER BY”.

Options:

params: An Array of [field, direction] sorting pairs.

Example:

criteria.order_by([[:field1, :asc], [:field2, :desc]])

Returns: self



113
114
115
# File 'lib/mongoid/criterion/optional.rb', line 113

def order_by(params = [])
  @options[:sort] = params; self
end

#skip(value = 0) ⇒ Object

Adds a criterion to the Criteria that specifies how many results to skip when returning Documents. This is mostly used in conjunction with limit() to handle paginated results, and is similar to the traditional “offset” parameter.

Options:

value: An Integer specifying the number of results to skip. Defaults to 0.

Example:

criteria.skip(20)

Returns: self



131
132
133
# File 'lib/mongoid/criterion/optional.rb', line 131

def skip(value = 0)
  @options[:skip] = value; self
end