Navigation
This version of the documentation is archived and no longer supported.
Pipeline Aggregation Stages
Name |
Description |
$project |
Reshapes each document in the stream, such as by adding new fields or
removing existing fields. For each input document, outputs one
document. |
$match |
Filters the document stream to allow only matching documents
to pass unmodified into the next pipeline stage. $match
uses standard MongoDB queries. For each input document, outputs
either one document (a match) or zero documents (no match). |
$redact |
Reshapes each document in the stream by restricting the content for
each document based on information stored in the documents
themselves. Incorporates the functionality of $project
and $match . Can be used to implement field level
redaction. For each input document, outputs either one or zero
document. |
$limit |
Passes the first n documents unmodified to the pipeline
where n is the specified limit. For each input document, outputs
either one document (for the first n documents) or zero documents
(after the first n documents). |
$skip |
Skips the first n documents where n is the specified skip number
and passes the remaining documents unmodified to the pipeline. For
each input document, outputs either zero documents (for the first n
documents) or one document (if after the first n documents). |
$unwind |
Deconstructs an array field from the input documents to output a
document for each element. Each output document replaces the array
with an element value. For each input document, outputs n documents
where n is the number of array elements and can be zero for an
empty array. |
$group |
Groups input documents by a specified identifier expression and
applies the accumulator expression(s), if specified, to each group.
Consumes all input documents and outputs one document per each
distinct group. The output documents only contain the identifier
field and, if specified, accumulated fields. |
$sort |
Reorders the document stream by a specified sort key. Only the order
changes; the documents remain unmodified. For each input document,
outputs one document. |
$geoNear |
Returns an ordered stream of documents based on the proximity to a
geospatial point. Incorporates the functionality of $match ,
$sort , and $limit for geospatial data. The
output documents include an additional distance field and can
include a location identifier field. |
$out |
Writes the resulting documents of the aggregation pipeline to a
collection. To use the $out stage, it must be the last
stage in the pipeline. |