聚合管道和分片集合
在本页面
聚合管道支持对分片集合的操作。本节介绍特定于聚合管道和分片集合的行为。
行为
Mongodb 3.2 版本的改变
如果管道以 shard key 上的精确$match开头,则整个管道仅在匹配的分片上运行。以前,管道将被拆分,合并它的工作必须在主分片上完成。
对于必须在多个分片上运行的聚合操作,如果操作不需要在数据库的主分片上运行,则这些操作将会将结果路由到随机分片以合并结果,以避免该数据库的主分片超载。 $out阶段和$lookup阶段需要在数据库的主分片上运行。
优化
在将聚合管道分成两部分时,管道被拆分以确保分片在考虑优化的情况下执行尽可能多的阶段。
要查看管道是如何拆分的,请在db.collection.aggregate()方法中包含explain选项。
优化可能会在不同版本之间发生变化。
译者:李冠飞
校对:李冠飞
最后更新于