Docs 菜单
Docs 主页
/
MongoDB Manual
/ /

聚合管道和分片集合

在此页面上

  • 行为
  • 优化

聚合管道支持对分片的集合进行操作。 本节介绍特定于聚合管道和分分片的集合的行为。

如果管道以分片键上的确切 $match 开始,并且管道不包含 $out$lookup 阶段,则整个管道仅在匹配的分片上运行。

当聚合操作在多个分片上运行时,结果会被路由到 mongos 进行合并,以下情况除外:

  • 如果管道集合$out阶段,则合并在输出分片所在的分片上运行。

  • 如果管道集合引用未分片集合的$lookup阶段,则合并将在未分片分片所在的分片上运行。

  • 如果管道包含排序或分组阶段,且启用了 allowDiskUse 设置,则合并会在随机选择的分片上运行。

将聚合管道分割为两部分时,管道的分割是为了确保分片执行尽可能多的阶段,并考虑到优化。

要如需查看管道是如何分割的,请在 db.collection.aggregate() 方法中加入 explain 选项。

优化可能因版本而异。

后退

限制

在此页面上