- Aggregation >
- Aggregation Reference >
- Aggregation Commands Comparison
Aggregation Commands Comparison¶
On this page
Tip
Starting in version 4.4, MongoDB adds the $accumulator
and
$function
aggregation operators. Using
$accumulator
and $function
,
mapReduce
expressions can be re-written using the
aggregation operators.
Even before version 4.4, some map-reduce expressions could also be
rewritten using other aggregation pipeline operators, such as $group
,
$merge
, etc.
Aggregation Commands Comparison Table¶
The following table provides a brief overview of the features of the MongoDB aggregation commands.
aggregate / db.collection.aggregate() |
mapReduce / db.collection.mapReduce() |
|
---|---|---|
Description | Designed with specific goals of improving performance and usability for aggregation tasks. Uses a “pipeline” approach where objects are transformed as they
pass through a series of pipeline operators such as
See Aggregation Pipeline Operators for more information on the pipeline operators. |
Implements the Map-Reduce aggregation for processing large data sets. |
Key Features | Pipeline operators can be repeated as needed. Pipeline operators need not produce one output document for every input document. Can also generate new documents or filter out documents. With the addition of |
In addition to grouping operations, can perform complex aggregation tasks as well as perform incremental aggregation on continuously growing datasets. |
Flexibility | Starting in version 4.4, can define custom aggregation
expressions with In previous versions, can only use operators and expressions supported by the aggregation pipeline. However, can add computed
fields, create new virtual sub-objects, and extract sub-fields
into the top-level of results by using the See |
Custom See |
Output Results | Returns results as a cursor. If the pipeline includes the
With With |
Returns results in various options (inline, new collection, merge,
replace, reduce). See mapReduce for details on the
output options. |
Sharding | Supports non-sharded and sharded input collections.
|
Supports non-sharded and sharded input collections. |
More Information |
See also