是否可以在Firestore中运行聚合查询?

qui鼠

堆栈:

Ionic
Nodejs/Express
Cloud Firestore

我的任务是编写一个应用程序,该应用程序以“天”格式记录日期,并带有该天的余额,并使用Chart.js在图表中显示该数据。有间隔按钮,使您可以在“天”,“周”和“月”之间进行切换,以将日期分组为相应的间隔。

目前使用1个集合可以正常工作。“几天”和“几周”都可以工作,但是一旦我们进入拥有大量数据的“月”,Firestore就会在我的后端中自杀。它尝试轮询的数据量太大。我目前在后端使用“天”对“周”和“月”运行聚合。

我在文档中只能找到的汇总文档是:https : //firebase.google.com/docs/firestore/solutions/aggregation,它不会给我结果,而是将其存储在对我没有帮助的集合中。该应用程序可以在单个日期更改余额,这会在事实发生后在余额中产生连锁反应-因此我必须在间隔更改时生成值。

是否存在类似的内容,还是我坚持创建3个独立的集合(天/周/月)并轮询所需的集合?

弗兰克·范普菲伦

您链接文档中

Cloud Firestore不支持本机聚合查询。

这样就可以很好地回答标题中的问题:Firestore没有内置功能可在数据库服务器上运行聚合。

常见的解决方案是:

  1. 在客户端上运行聚合

    听起来这就是您现在正在做的事情:您正在下载内部的所有数据,然后将其聚合到客户端上。这种方法适用于小型数据集,但如果仅在客户端中显示聚合,则可能会下载比所需更多的数据。这就是为什么如果您的数据集可能很大(在使用Firestore时通常会出现)的情况下,您应该考虑其他选择。

  2. 每次数据更改时更新汇总

    在这种情况下,您将汇总值存储在数据库中,并在每次写入汇总值时对其进行更新。该文档显示了以这种方式计算移动平均值的示例,该示例根本不需要查询,因此可以缩放到任何大小的数据集。

    在这种情况下,您必须记住,Firestore仅限于每秒对每个文档执行一次写入操作。因此,如果您接收到的数据更多,则可能需要分发聚合查询,如分布式计数器文档中所示

  3. 使用另一个数据库进行聚合查询

    另一种选择是使用Firestore存储客户端读取的数据,但使用另一个数据库进行复杂的动态查询。

    一个典型的示例是将数据从Firestore导出到BigQuery,然后在BigQuery中执行计算,然后将结果写回到Firestore,以便客户端可以读取它们。在这里,您将两种产品都发挥出最佳性能:Firestore用于大规模提供数据,BigQuery用于大规模处理数据。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

是否可以在 Firestore 中查询用户?

使用CQRS是否可以直接从Axon聚合的命令处理程序运行查询?

Flutter Firestore查询中是否可以使用通配符?

是否可以基于subArray中的值查询Firestore?

是否可以在 Redshift 中并行运行查询?

是否可以将聚合值提供给选择中的不同子查询

是否可以在 mongo db 中聚合 $$ROOT?

聚合查询在mongodb中运行,而不在mongoose中运行

是否可以再次查询Firestore中的对象数组中的对象字段?

是否可以在NEST上查询多个术语字段(.NET)的聚合?

是否可以使用日期匹配的MongoDB聚合查询?

应用中的Firestore查询可拒绝权限,而模拟器可以正常运行

是否可以在Cloud Firestore中查询多个文档子集合?

PostgreSQL:是否可以打印正在运行的查询的查询计划?

是否可以将 vba 代码放在 BarTender Design 后面并让它在 access 中运行删除查询

NodeJS是否可以在单个路由页面中运行多个sql查询?

在Azure DevOps中,是否可以创建基于PBI数据计算项目运行状况的查询?

是否可以在运行时在Spring Boot中构建自定义查询?

是否可以在Firestore中更改文档ID?

是否保证 GROUP BY 查询中的非聚合列?

查询Firestore数据时是否可以设置范围?

是否可以在 Cloud Firestore 中进行慢速查询?

是否可以从Cloud Firestore查询中排除几个特定文档?

PostgreSQL-聚合查询中的聚合查询

是否可以通过键在Firestore中查询某个元素,而又不知道该元素属于哪个集合?

Cassandra 是否适合聚合查询?

是否可以在DynamoDB中查询JSON数据?

SQL 查询中的函数。是否可以?

是否可以在 Mongo Atlas 中编写查询?