当前位置: 首页 > 知识库问答 >
问题:

Firestore查询在不读取文档的情况下获得结果大小?

冀越
2023-03-14

我有一个应用程序,返回一个保健食品的列表。将有大约10000-20000食品(文件)在产品集合。

这些食物由多个字段使用ArrayContains查询。这可能是类别、子类别,当用户在搜索栏中搜索时,它是关键字数组上的arrayContains。

但是在这个例子中,他们说要使用计数器,这似乎并不实际,因为当用户搜索时,我使用的是查询关键字,当用户过滤时,我使用的是类别和子类别的混合。

谢谢

共有1个答案

涂煌
2023-03-14

有这么多产品,我计划在获取文档时对查询结果进行分页。

这是一个非常好的决定,因为一次获得10000-20000份食物(文件)不是一个选择。原因之一是成本,它将非常昂贵,其次是当试图加载如此大量的数据时,您将获得OutofMemoryError

问题是我需要知道结果的数量来向用户显示结果的总数。

这是正确的,该解决方案不符合您的需要,因为它解决了在集合中存储所有文档的数量而不是查询返回的文档数量的问题。据我所知,提供这些信息是不可伸缩的,就像云托管的NoSQL实时数据库需要“大规模伸缩”一样。

 类似资料:
  • 如何从拥有数千个文档的Firestore集合中有效地获得整个查询大小? 在我的例子中,我通过几种不同的规则查询文档: 开始日期 结束日期 位置ID 关键字 我可以使用云函数进行与前面相同的查询,但没有限制,然后得到它的大小,但有没有更有效的方法做到这一点?查询大小可能是数千个文档,那么这样做是否存在性能问题?在这种情况下,帐单是如何工作的? 如果。我的查询是1500个文档,是否需要1500个读取操

  • 问题内容: 关于sqlite中的BLOB,我有以下问题: sqlite是否跟踪BLOB的大小? 我猜想它确实可以,但是然后length函数使用它,还是读取BLOB的内容? 如果sqlite跟踪BLOB的大小而长度不使用它,那么是否可以通过其他功能访问该大小? 我之所以这样问,是因为我想知道是否应该实现在其他列中设置BLOB大小的触发器,我是否可以动态获取大小而不会导致sqlite读取BLOB的性能

  • 我有一个索引(名称:“index1”)指向ElasticSearch中的多个文档。 文档的格式(json)是- 下面是映射- 我在ES查询中哪里做错了?

  • 我有文档,其中包含子集合。现在,我想获取子集合中至少有一项的所有项目。这可能吗? 类似于: < code>getDocs(collection(getDB()," Projects)),其中(" Items.size ","

  • 为了在Lucene查询返回的文档中显示突出显示的匹配词,Lucene搜索结果可能包含用于将文档作为匹配我的请求返回的词。 例如: > Lucene查询:"狗猫" 结果:[“狗很好”,“狗和猫是朋友”] 如何通过Lucene实现这一点?我无法手动处理猫或狗,也无法处理请求词和返回词之间的任何差异。