0

查找与查询匹配的第一个和最后一个文档的最有效方法是什么?可能有大量文档与查询匹配。

(为什么?我试图找到符合我的搜索条件的最旧和最新的文档。)

4

2 回答 2

2

您可以执行 2 个查询 - 一个按日期升序排序,另一个按日期降序排序。在每个查询中,将结果限制为 1。如果日期字段被索引,那应该是一个非常快速的查询。

于 2013-06-26T23:04:25.880 回答
2

由于countskip很昂贵,我相信最好的办法是执行两个具有不同排序顺序的查询。还有一个额外的往返,但是带有 alimit的索引查询非常快。

经常接触旧数据可能是一个问题,因为它迫使 mongo 将旧数据保留在内存中。如果这些最旧的结果比较稳定并且数据总量很大,您可能希望缓存这些结果。但是,如果您的查询模式很复杂,我猜缓存也无济于事。

于 2013-06-26T23:05:00.950 回答