- 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 |
group |
|
---|---|---|---|
Description | New in version 2.2. 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 Reference for more information on the pipeline operators. |
Implements the Map-Reduce aggregation for processing large data sets. | Provides grouping functionality. Is slower than the |
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. |
Can either group by existing fields or with a custom See |
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 |
Custom See |
Output Results | Returns results inline. The result is subject to the BSON Document size limit. |
Returns results in various options (inline, new collection, merge,
replace, reduce). See Changed in version 2.2: Provides much better support for sharded map-reduce output than previous versions. |
Returns results inline as an array of grouped items. The result set must fit within the maximum BSON document size limit. Changed in version 2.2: The returned array can contain at most 20,000 elements; i.e. at most 20,000 unique groupings. Previous versions had a limit of 10,000 elements. |
Sharding | Supports non-sharded and sharded input collections. | Supports non-sharded and sharded input collections. | Does not support sharded collection. |
Notes | Prior to 2.4, JavaScript code executed in a single thread. | Prior to 2.4, JavaScript code executed in a single thread. | |
More Information | See Aggregation Concepts and aggregate . |
See Map-Reduce and mapReduce . |
See group . |