Class: Mongoid::Criteria::Queryable::Options
- Defined in:
- lib/mongoid/criteria/queryable/options.rb
Overview
The options is a hash representation of options passed to MongoDB queries, such as skip, limit, and sorting criteria.
Instance Attribute Summary
Attributes inherited from Smash
#aliased_associations, #aliased_associations The aliased_associations., #aliases, #aliases The aliases., #associations, #associations The associations., #serializers, #serializers The serializers.
Instance Method Summary collapse
-
#__deep_copy__ ⇒ Options
Perform a deep copy of the options.
-
#fields ⇒ Hash
Convenience method for getting the field options.
-
#limit ⇒ Integer
Convenience method for getting the limit option.
-
#skip ⇒ Integer
Convenience method for getting the skip option.
-
#sort ⇒ Hash
Convenience method for getting the sort options.
-
#store(key, value, localize = true) ⇒ Object
(also: #[]=)
Store the value in the options for the provided key.
-
#to_pipeline ⇒ Array<Hash>
Convert the options to aggregation pipeline friendly options.
Methods inherited from Smash
Constructor Details
This class inherits a constructor from Mongoid::Criteria::Queryable::Smash
Instance Method Details
#__deep_copy__ ⇒ Options
Perform a deep copy of the options.
87 88 89 90 91 92 93 |
# File 'lib/mongoid/criteria/queryable/options.rb', line 87 def __deep_copy__ self.class.new(aliases, serializers, associations, aliased_associations) do |copy| each_pair do |key, value| copy.merge!(key => value.__deep_copy__) end end end |
#fields ⇒ Hash
Convenience method for getting the field options.
18 19 20 |
# File 'lib/mongoid/criteria/queryable/options.rb', line 18 def fields self[:fields] end |
#limit ⇒ Integer
Convenience method for getting the limit option.
28 29 30 |
# File 'lib/mongoid/criteria/queryable/options.rb', line 28 def limit self[:limit] end |
#skip ⇒ Integer
Convenience method for getting the skip option.
38 39 40 |
# File 'lib/mongoid/criteria/queryable/options.rb', line 38 def skip self[:skip] end |
#sort ⇒ Hash
Convenience method for getting the sort options.
48 49 50 |
# File 'lib/mongoid/criteria/queryable/options.rb', line 48 def sort self[:sort] end |
#store(key, value, localize = true) ⇒ Object Also known as: []=
Store the value in the options for the provided key. The options will handle all necessary serialization and localization in this step.
62 63 64 |
# File 'lib/mongoid/criteria/queryable/options.rb', line 62 def store(key, value, localize = true) super(key, evolve(value, localize)) end |
#to_pipeline ⇒ Array<Hash>
Convert the options to aggregation pipeline friendly options.
73 74 75 76 77 78 79 |
# File 'lib/mongoid/criteria/queryable/options.rb', line 73 def to_pipeline pipeline = [] pipeline.push({ "$skip" => skip }) if skip pipeline.push({ "$limit" => limit }) if limit pipeline.push({ "$sort" => sort }) if sort pipeline end |