mongodb 中 Aggregation 的管道和分片集合( Pipeline and Sharded Collections)

mongodb 中的aggretion 中,如果管道中存在一个与之相匹配的shard key ,那么这个管道只运行在与之相匹配的shard 中,在以前(3.2),pipeline 被分流,最后又由primary  shard 合并;

在sharded collections  中,aggragation 必须运行在多个shards 中,如果这个操作不请求运行到primary shard 中,这些操作将被路由到随机的一个shard中去合并这个结果,这样缓解了primary shard 数据库过载的压力 ,$out  和$lookup 请求被运行到primary shard 数据库中。

原文地址:https://www.cnblogs.com/Kellana/p/5880813.html