Aggregation Pipeline Limits¶
Aggregation operations with the
aggregate command have the
Result Size Restrictions¶
Changed in version 3.6: MongoDB 3.6 removes the option for the
command to return its results as a single document.
aggregate command can return
either a cursor or store the results in a collection. When returning a
cursor or storing the results in a collection, each document in the
result set is subject to the
BSON Document Size limit,
currently 16 megabytes; if any single document that exceeds the
BSON Document Size limit, the command will produce an error.
The limit only applies to the returned documents; during the pipeline
processing, the documents may exceed this size. The
db.collection.aggregate() method returns a cursor by default.
Pipeline stages have a limit of 100 megabytes of RAM. If a stage
exceeds this limit, MongoDB will produce an error. To allow for the
handling of large datasets, use the
allowDiskUse option to enable
aggregation pipeline stages to write data to temporary files.
Changed in version 3.4.
$graphLookup stage must stay within the 100 megabyte
memory limit. If
allowDiskUse: true is specified for the
aggregate() operation, the
$graphLookup stage ignores the option. If there are other
stages in the
allowDiskUse: true option is in effect for these other stages.