PHP Class Doctrine\MongoDB\Aggregation\Builder

Since: 1.2
Author: alcaeus ([email protected])
Show file Open project: doctrine/mongodb Class Usage Examples

Public Methods

Method Description
__construct ( Doctrine\MongoDB\Collection $collection ) Create a new aggregation builder.
execute ( array $options = [] ) : Doctrine\MongoDB\Iterator Executes the aggregation pipeline
expr ( ) : Expr
geoNear ( float | array | GeoJson\Geometry\Point $x, float $y = null ) : Doctrine\MongoDB\Aggregation\Stage\GeoNear Outputs documents in order of nearest to farthest from a specified point.
getPipeline ( ) : array Returns the assembled aggregation pipeline
getStage ( integer $index ) : Stage Returns a certain stage from the pipeline
group ( ) : Group Groups documents by some specified expression and outputs to the next stage a document for each distinct grouping.
indexStats ( ) : Doctrine\MongoDB\Aggregation\Stage\IndexStats Returns statistics regarding the use of each index for the collection.
limit ( integer $limit ) : Doctrine\MongoDB\Aggregation\Stage\Limit Limits the number of documents passed to the next stage in the pipeline.
lookup ( string $from ) : Doctrine\MongoDB\Aggregation\Stage\Lookup Performs a left outer join to an unsharded collection in the same database to filter in documents from the “joined” collection for processing.
match ( ) : Match Filters the documents to pass only the documents that match the specified condition(s) to the next pipeline stage.
matchExpr ( ) : Expr Returns a query expression to be used in match stages
out ( string $collection ) : Out Takes the documents returned by the aggregation pipeline and writes them to a specified collection. This must be the last stage in the pipeline.
project ( ) : Project Passes along the documents with only the specified fields to the next stage in the pipeline. The specified fields can be existing fields from the input documents or newly computed fields.
redact ( ) : Doctrine\MongoDB\Aggregation\Stage\Redact Restricts the contents of the documents based on information stored in the documents themselves.
sample ( integer $size ) : Doctrine\MongoDB\Aggregation\Stage\Sample Randomly selects the specified number of documents from its input.
skip ( integer $skip ) : Doctrine\MongoDB\Aggregation\Stage\Skip Skips over the specified number of documents that pass into the stage and passes the remaining documents to the next stage in the pipeline.
sort ( array | string $fieldName, integer | string $order = null ) : Doctrine\MongoDB\Aggregation\Stage\Sort Sorts all input documents and returns them to the pipeline in sorted order.
unwind ( string $fieldName ) : Doctrine\MongoDB\Aggregation\Stage\Unwind Deconstructs an array field from the input documents to output a document for each element. Each output document is the input document with the value of the array field replaced by the element.

Protected Methods

Method Description
addStage ( Stage $stage ) : Stage

Method Details

__construct() public method

Create a new aggregation builder.
public __construct ( Doctrine\MongoDB\Collection $collection )
$collection Doctrine\MongoDB\Collection

addStage() protected method

protected addStage ( Stage $stage ) : Stage
$stage Stage
return Stage

execute() public method

Executes the aggregation pipeline
public execute ( array $options = [] ) : Doctrine\MongoDB\Iterator
$options array
return Doctrine\MongoDB\Iterator

expr() public method

public expr ( ) : Expr
return Expr

geoNear() public method

A GeoJSON point may be provided as the first and only argument for 2dsphere queries. This single parameter may be a GeoJSON point object or an array corresponding to the point's JSON representation. If GeoJSON is used, the "spherical" option will default to true. You can only use this as the first stage of a pipeline.
See also: http://docs.mongodb.org/manual/reference/operator/aggregation/geoNear/
public geoNear ( float | array | GeoJson\Geometry\Point $x, float $y = null ) : Doctrine\MongoDB\Aggregation\Stage\GeoNear
$x float | array | GeoJson\Geometry\Point
$y float
return Doctrine\MongoDB\Aggregation\Stage\GeoNear

getPipeline() public method

Returns the assembled aggregation pipeline
public getPipeline ( ) : array
return array

getStage() public method

Returns a certain stage from the pipeline
public getStage ( integer $index ) : Stage
$index integer
return Stage

group() public method

Groups documents by some specified expression and outputs to the next stage a document for each distinct grouping.
See also: http://docs.mongodb.org/manual/reference/operator/aggregation/group/
public group ( ) : Group
return Doctrine\MongoDB\Aggregation\Stage\Group

indexStats() public method

Returns statistics regarding the use of each index for the collection.
See also: https://docs.mongodb.org/manual/reference/operator/aggregation/indexStats/
public indexStats ( ) : Doctrine\MongoDB\Aggregation\Stage\IndexStats
return Doctrine\MongoDB\Aggregation\Stage\IndexStats

limit() public method

Limits the number of documents passed to the next stage in the pipeline.
See also: http://docs.mongodb.org/manual/reference/operator/aggregation/limit/
public limit ( integer $limit ) : Doctrine\MongoDB\Aggregation\Stage\Limit
$limit integer
return Doctrine\MongoDB\Aggregation\Stage\Limit

lookup() public method

Performs a left outer join to an unsharded collection in the same database to filter in documents from the “joined” collection for processing.
See also: https://docs.mongodb.org/manual/reference/operator/aggregation/lookup/
public lookup ( string $from ) : Doctrine\MongoDB\Aggregation\Stage\Lookup
$from string
return Doctrine\MongoDB\Aggregation\Stage\Lookup

match() public method

Filters the documents to pass only the documents that match the specified condition(s) to the next pipeline stage.
See also: http://docs.mongodb.org/manual/reference/operator/aggregation/match/
public match ( ) : Match
return Doctrine\MongoDB\Aggregation\Stage\Match

matchExpr() public method

Returns a query expression to be used in match stages
public matchExpr ( ) : Expr
return Doctrine\MongoDB\Query\Expr

out() public method

Takes the documents returned by the aggregation pipeline and writes them to a specified collection. This must be the last stage in the pipeline.
See also: http://docs.mongodb.org/manual/reference/operator/aggregation/out/
public out ( string $collection ) : Out
$collection string
return Doctrine\MongoDB\Aggregation\Stage\Out

project() public method

Passes along the documents with only the specified fields to the next stage in the pipeline. The specified fields can be existing fields from the input documents or newly computed fields.
See also: http://docs.mongodb.org/manual/reference/operator/aggregation/project/
public project ( ) : Project
return Doctrine\MongoDB\Aggregation\Stage\Project

redact() public method

Restricts the contents of the documents based on information stored in the documents themselves.
See also: http://docs.mongodb.org/manual/reference/operator/aggregation/redact/
public redact ( ) : Doctrine\MongoDB\Aggregation\Stage\Redact
return Doctrine\MongoDB\Aggregation\Stage\Redact

sample() public method

Randomly selects the specified number of documents from its input.
See also: https://docs.mongodb.org/manual/reference/operator/aggregation/sample/
public sample ( integer $size ) : Doctrine\MongoDB\Aggregation\Stage\Sample
$size integer
return Doctrine\MongoDB\Aggregation\Stage\Sample

skip() public method

Skips over the specified number of documents that pass into the stage and passes the remaining documents to the next stage in the pipeline.
See also: http://docs.mongodb.org/manual/reference/operator/aggregation/skip/
public skip ( integer $skip ) : Doctrine\MongoDB\Aggregation\Stage\Skip
$skip integer
return Doctrine\MongoDB\Aggregation\Stage\Skip

sort() public method

If sorting by multiple fields, the first argument should be an array of field name (key) and order (value) pairs.
See also: http://docs.mongodb.org/manual/reference/operator/aggregation/sort/
public sort ( array | string $fieldName, integer | string $order = null ) : Doctrine\MongoDB\Aggregation\Stage\Sort
$fieldName array | string Field name or array of field/order pairs
$order integer | string Field order (if one field is specified)
return Doctrine\MongoDB\Aggregation\Stage\Sort

unwind() public method

Deconstructs an array field from the input documents to output a document for each element. Each output document is the input document with the value of the array field replaced by the element.
See also: http://docs.mongodb.org/manual/reference/operator/aggregation/unwind/
public unwind ( string $fieldName ) : Doctrine\MongoDB\Aggregation\Stage\Unwind
$fieldName string The field to unwind. It is automatically prefixed with the $ sign
return Doctrine\MongoDB\Aggregation\Stage\Unwind