文档菜单
文档首页
/
MongoDB 手册
/ /

聚合管道和分片集合

本页内容

  • 行为
  • 优化

聚合管道支持对分片集合的操作。本节描述了聚合管道和分片集合的特定行为。

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

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

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

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

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

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

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

优化可能会在不同版本之间发生变化。

返回

限制

本页内容