没有排序的Mongodb分页?

时间:2018-06-14 07:42:46

标签: mongodb mongodb-query

使用mongodb 3.6 使用最新的C#7 Mongodb驱动程序。

目标

我需要通过每页分页1k文档来获取集合中具有特定状态的所有文档。

示例

假设每个文档都包含以下字段:Id, Status, IGNORE, CreateDate

我想用status=2获取所有文档。 为此,我有一个索引当然包括Id:1,Status:1, IGNORE:1, CreateDate:1,它为我提供其他查询。

观察

对于~20k文档,FIND查询(id,status)需要21ms。添加sort(createDate:1)使其成为166ms。

在两种情况下都选择相同的索引。

问题

  1. 这里的跳跃似乎太高了,我错过了什么?
  2. 我可以假设sort(createDate:1)是多余的,因为文档已经像这样放置了吗? (我认为不是,因为Mongodb可能会尝试提高我的查询效率)(回答'重复' POST)
  3. 使用第3个字段未使用的索引会对操作造成太大伤害吗?
  4. Additionals

    1. 我并行运行分页请求..每次使用不同的pageIx但相同数量的10个请求。
    2. 结果是在两个查询的末尾添加.explain("executionStats")

0 个答案:

没有答案