module Mongoid::Criteria::Queryable::Aggregable
def aggregating?
-
(true | false)- If the aggregable is aggregating.
Other tags:
- Example: Is the aggregable aggregating? -
def aggregating? !!@aggregating end
def aggregation(operation)
-
(Aggregable)- The cloned aggregable.
Parameters:
-
operation(Hash) -- The operation for the pipeline.
Other tags:
- Example: Aggregate on the operation. -
Other tags:
- Api: - private
def aggregation(operation) return self unless operation clone.tap do |query| unless aggregating? query.pipeline.concat(query.selector.to_pipeline) query.pipeline.concat(query.options.to_pipeline) query.aggregating = true end yield(query.pipeline) end end
def group(operation)
-
(Aggregable)- The aggregable.
Parameters:
-
operation(Hash) -- The group operation.
Other tags:
- Example: Add a group operation using symbol shortcuts. -
Example: Add a group operation being verbose. -
def group(operation) aggregation(operation) do |pipeline| pipeline.group(operation) end end
def project(operation = nil)
-
(Aggregable)- The aggregable.
Parameters:
-
operation(Hash) -- The projection to make.
Other tags:
- Example: Add a projection to the pipeline. -
def project(operation = nil) aggregation(operation) do |pipeline| pipeline.project(operation) end end
def unwind(field)
-
(Aggregable)- The aggregable.
Parameters:
-
field(String | Symbol) -- The name of the field to unwind.
Other tags:
- Example: Add an unwind to the pipeline. -
def unwind(field) aggregation(field) do |pipeline| pipeline.unwind(field) end end