Module: Mongoid::Criterion::Optional
- Included in:
- Mongoid::Criteria
- Defined in:
- lib/mongoid/criterion/optional.rb
Instance Method Summary collapse
-
#cache ⇒ Object
Tells the criteria that the cursor that gets returned needs to be cached.
-
#cached? ⇒ Boolean
Will return true if the cache option has been set.
-
#enslave ⇒ Object
Flags the criteria to execute against a read-only slave in the pool instead of master.
-
#enslaved? ⇒ Boolean
Will return true if the criteria is enslaved.
-
#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. -
#id(*args) ⇒ Object
Adds a criterion to the
Criteria
that specifies an id that must be matched. -
#limit(value = 20) ⇒ Object
Adds a criterion to the
Criteria
that specifies the maximum number of results to return. -
#offset(*args) ⇒ Object
Returns the offset option.
-
#order_by(params = []) ⇒ Object
Adds a criterion to the
Criteria
that specifies the sort order of the returned documents in the database. -
#skip(value = 0) ⇒ Object
Adds a criterion to the
Criteria
that specifies how many results to skip when returning Documents.
Instance Method Details
#cache ⇒ Object
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?
22 23 24 |
# File 'lib/mongoid/criterion/optional.rb', line 22 def cached? @options[:cache] == true end |
#enslave ⇒ Object
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?
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); ; 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 |