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