- Aggregation >
- Aggregation Reference >
- Aggregation Commands Comparison
Aggregation Commands Comparison¶
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 | Limited to the 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 |