The aggregation pipeline supports operations on sharded collections. This section describes behaviors
specific to the aggregation pipeline and
If the pipeline starts with an exact
$match on a
shard key, and the pipeline does not contain
$lookup stages, the entire pipeline runs on the matching
When aggregation operations run on multiple shards, the results are
routed to the
mongos to be merged, except in the
- If the pipeline includes the
$lookup stages, the merge runs on the
- If the pipeline includes a sorting or grouping stage, and the
allowDiskUse setting is enabled,
the merge runs on a randomly-selected shard.
When splitting the aggregation pipeline into two parts, the pipeline is
split to ensure that the shards perform as many stages as possible with
consideration for optimization.
To see how the pipeline was split, include the
explain option in the
Optimizations are subject to change between releases.