On this page
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. |
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.6: MongoDB 3.6 removes the use of To indicate a cursor with the default batch size, specify To indicate a cursor with a non-default batch size, use |
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 |