- 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 |
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. |
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
Changed in version 3.4: MongoDB 3.4 deprecates the use of |
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. |
Notes | Prior to 2.4, JavaScript code executed in a single thread. | |
More Information | See Aggregation Pipeline and aggregate . |
See Map-Reduce and mapReduce . |