【发布时间】:2020-02-05 21:02:34
【问题描述】:
在我的例子中,有 10 个字段,所有字段都需要通过 "or" 搜索,这就是为什么我使用多个查询并使用 Promise.all() 在客户端过滤常见项目。
问题是我想实现分页。我不想得到每个查询的所有结果,这有太多的“读取”成本。但是我不能对每个查询使用.limit(),因为我想要限制“最终结果”。
例如,我想得到10个查询结果中的前50个常见结果,如果我对每个查询都做limit(50),最终的结果可能会小于50。
有人对多个查询的分页有想法吗?
【问题讨论】:
-
您可以按顺序加载子集,直到获得正确数量的结果。
-
@FrankvanPuffelen 是的,我现在所做的就像你提到的那样。但缺点是,例如,我想得到 50 条结果,每次查询 200 条记录,直到得到 50 条。如果幸运的话,我会通过几次顺序查询得到结果,但有时需要超过 10 次,因为数据的分布是随机的。无论如何,它现在不漂亮但可行。