【发布时间】:2019-05-04 12:02:41
【问题描述】:
如果我在分片 mongodb 集群上运行以下查询并且查询是分散/聚集类型。
find({"product": "laptop"}).sort({"year": 1}).skip(15).limit(5)
和 SKIP + LIMITS(组合)是否会应用于 mongos 或单个分片(即 mongod)?
或 mongos 向每个分片发送 limit(20) 即 sum(skip+limit) 以优化查询,然后也应用 在返回客户端之前跳过(15).limit(5)到收集的结果
【问题讨论】:
-
这个问题的意义何在?您想知道 MongoDB 是否会“限制”从每个分片返回的结果,或者“限制”是否真的发生在
mongos路由器上?究竟是什么问题?您是否认为您的整个收藏都被发送到mongos路由器?我真的认为这些都不应该让你担心。另一方面,如果您认为查询的 性能 很慢,那么就直接说出来吧。使用skip()和limit()不是最佳的,文档确实明确说明了这一点。