Google cloud firestore 多个查询的Firestore分页
在我的例子中,有10个字段,所有字段都需要通过Google cloud firestore 多个查询的Firestore分页,google-cloud-firestore,Google Cloud Firestore,在我的例子中,有10个字段,所有字段都需要通过或“进行搜索,这就是为什么我使用多个查询,并使用Promise.all()在客户端过滤常见项的原因 问题是我想实现分页。我不想得到每个查询的所有结果,因为这需要太多的“读取”成本。但是我不能对每个查询使用.limit(),因为我想要的是限制“最终结果” 例如,我希望得到10个查询结果中的前50个常见结果,如果我对每个查询limit(50),最终结果可能小于50 有人对多个查询的分页有什么想法吗?我认为实现这一点的最佳方法是使用查询游标,以便更好地管理
或“
进行搜索,这就是为什么我使用多个查询,并使用Promise.all()
在客户端过滤常见项的原因
问题是我想实现分页。我不想得到每个查询的所有结果,因为这需要太多的“读取”成本。但是我不能对每个查询使用.limit()
,因为我想要的是限制“最终结果”
例如,我希望得到10个查询结果中的前50个常见结果,如果我对每个查询limit(50)
,最终结果可能小于50
有人对多个查询的分页有什么想法吗?我认为实现这一点的最佳方法是使用查询游标,以便更好地管理从搜索中检索的数据 我建议您查看以下链接,以了解更多信息,包括社区回答的问题,这似乎与您的案例类似
如果这些信息对你有帮助,请告诉我 不确定这是否相关,但我认为我也遇到了类似的问题,并提出了4种解决方法
希望这些能有所帮助。这是我的原始帖子您可以按顺序加载子集,直到获得正确数量的结果。@FrankvanPuffelen是的,我现在所做的与您提到的一样。但缺点是,例如,我想得到50个结果,每次查询200条记录,直到得到50条。如果幸运的话,我将通过几次顺序查询得到结果,但有时需要10次以上,因为数据的分布是随机的。不管怎么说,这并不漂亮,但现在是可行的。谢谢你的回答。光标可以提供帮助。但是你提供的链接与我的情况不太匹配。在我的例子中,有10个独立的查询。在他们返回结果之后,我会做一个局部筛选来获得他们之间的共同结果,如果共同结果没有达到我需要的数量,我会继续转到下一个子集,直到我得到正确数量的结果。但由于数据的分布,“时间”和“读取”成本无法控制。嗨@yuehengshi当然,我理解。我发现一些额外的链接可能会对你有所帮助,否则,继续使用子集可能是你最好的选择。链接如下:@gso_加布里埃尔感谢这些链接。我想我还需要继续使用子集。谢谢你的回答!我认为最后一个对我来说是一个很好的尝试,创建一些索引在查询时会很有帮助。