Class: Mongoid::Criteria::Queryable::Pipeline
Relationships & Source Files | |
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
|
|
Instance Chain:
|
|
Inherits: |
Array
|
Defined in: | lib/mongoid/criteria/queryable/pipeline.rb |
Overview
Represents an aggregation pipeline.
Class Attribute Summary
::Mongoid::Extensions::Array::ClassMethods
- Extended
resizable? | Returns whether the object’s size can be changed. |
Class Method Summary
-
.new(aliases = {}) {|_self| ... } ⇒ Pipeline
constructor
Initialize the new pipeline.
::Mongoid::Extensions::Array::ClassMethods
- Extended
__mongoize_fk__ | Convert the provided object to a proper array of foreign keys. |
mongoize | Turn the object from the ruby type we deal with to a Mongo friendly type. |
Instance Attribute Summary
- #aliases readonly
- #aliases The field aliases.(The field aliases.) readonly
::Mongoid::Extensions::Array
- Included
#multi_arged? | Is the array a set of multiple arguments in a method? |
#resizable? | Returns whether the object’s size can be changed. |
Instance Method Summary
-
#__deep_copy__ ⇒ Pipeline
Deep copy the aggregation pipeline.
-
#group(entry) ⇒ Pipeline
Add a group operation to the aggregation pipeline.
-
#project(entry) ⇒ Pipeline
Adds a $project entry to the aggregation pipeline.
-
#unwind(field_or_doc) ⇒ Pipeline
Add the $unwind entry to the pipeline.
-
#evolve(entry) ⇒ Hash
private
Internal use only
Internal use only
Evolve the entry using the aliases.
::Mongoid::Extensions::Array
- Included
#__evolve_object_id__ | Evolve the array into an array of object ids. |
#__find_args__ | Get the array of args as arguments for a find query. |
#__mongoize_object_id__ | Mongoize the array into an array of object ids. |
#__mongoize_time__ | Converts the array for storing as a time. |
#delete_one | Delete the first object in the array that is equal to the supplied object and return it. |
#mongoize | Turn the object from the ruby type we deal with to a Mongo friendly type. |
Constructor Details
.new(aliases = {}) {|_self| ... } ⇒ Pipeline
Initialize the new pipeline.
# File 'lib/mongoid/criteria/queryable/pipeline.rb', line 48
def initialize(aliases = {}) @aliases = aliases yield(self) if block_given? end
Instance Attribute Details
#aliases (readonly)
[ GitHub ]# File 'lib/mongoid/criteria/queryable/pipeline.rb', line 12
attr_reader :aliases
#aliases The field aliases.(The field aliases.) (readonly)
[ GitHub ]# File 'lib/mongoid/criteria/queryable/pipeline.rb', line 12
attr_reader :aliases
Instance Method Details
#__deep_copy__ ⇒ Pipeline
Deep copy the aggregation pipeline. Will clone all the values in the pipeline as well as the pipeline itself.
#evolve(entry) ⇒ Hash (private)
Evolve the entry using the aliases.
#group(entry) ⇒ Pipeline
Add a group operation to the aggregation pipeline.
# File 'lib/mongoid/criteria/queryable/pipeline.rb', line 37
def group(entry) push("$group" => evolve(entry. )) end
#project(entry) ⇒ Pipeline
Adds a $project entry to the aggregation pipeline.
# File 'lib/mongoid/criteria/queryable/pipeline.rb', line 61
def project(entry) push("$project" => evolve(entry)) end
#unwind(field_or_doc) ⇒ Pipeline
Add the $unwind entry to the pipeline.
# File 'lib/mongoid/criteria/queryable/pipeline.rb', line 75
def unwind(field_or_doc) unless field_or_doc.respond_to? :keys normalized = field_or_doc.to_s name = aliases[normalized] || normalized push("$unwind" => name.__mongo_expression__) else push("$unwind" => field_or_doc) end end