gpt4 book ai didi

node.js - 如何对 Google Datastore 中的大量实体进行求和?

转载 作者:太空宇宙 更新时间:2023-11-04 00:22:03 24 4
gpt4 key购买 nike

我想了解 Google Datastore 是否可以满足我的需求。

我有很多实体,我需要对某个属性进行求和。基本上,我希望能够做到 select count(value1) from entity1 where [some filter] ,entity1 是一个在其字段/属性中跟踪某种数据的实体 value1 .

我知道这些类型的函数在数据存储中不可用,因为它不是关系数据库,因此最直接的解决方案是执行 select然后计算应用程序中结果集的总和。所以我会有类似的东西(使用nodejs,但我不关心语言):

query = client.query(kind='Task')
query.add_filter('done', '=', False)
results = list(query.fetch())

total = 0
for(v in results)
total += v.value

问题是我有数千条记录,因此结果可能约为 300 000 条记录。

在不出现瓶颈的情况下执行此操作的最佳方法是什么?

最佳答案

您可以将总金额存储在单独的实体中。无论用户请求的频率如何,您都可以在几毫秒内返回。

当包含在总计中的实体发生更改时,您就更改了总计实体。例如,如果某个属性从 300 更改为 500,您会将总数增加 200。这样您的总数始终是准确的。

如果更新非常频繁,您可以将这些更新作为任务(任务队列 API)实现,以防止竞争情况。这些任务将非常快速地执行,因此您的用户每次询问时都会得到非常“新鲜”的总计。

关于node.js - 如何对 Google Datastore 中的大量实体进行求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44240588/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com