计算Python中GQL查询给出的不同字符串的数目

2024-05-16 00:37:52 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有以下GQL数据库

class Signatories(db.Model):
    name = db.StringProperty()
    event = db.StringProperty()

此数据库保存有关用户注册的事件的信息。假设我在数据库中有以下条目,格式为(event\u name,event\desc):(Bob,TestEvent),(Bob,testvent2),(Fred,TestEvent),(John,TestEvent)。 但是这里的两难之处是,我不能仅仅将Bob的所有事件聚合到一个实体中,因为我想查询所有注册特定事件的人员,而且我想添加这些条目,而不必每次手动更新条目。

如何计算Python中GQL查询提供的不同字符串的数量(在我的示例中,我特别想查看当前注册了多少人来注册事件)?

我尝试使用旧的^{cd1>},但是这当然返回列表中的字符串总数,而不管每个字符串的唯一性。

我也尝试使用^{cd2>},其中^{cd3>},但不幸的是,这只返回一个错误。


Tags: 字符串nameevent数据库dbmodel事件条目
1条回答
网友
1楼 · 发布于 2024-05-16 00:37:52

你不能-至少不能直接。(顺便说一下,你没有GQL数据库)。在

如果有少量的项,则将它们提取到内存中,并使用set操作生成唯一的集合,然后进行计数

如果有大量的实体使内存中的过滤和计数出现问题,那么您的策略是在创建它们时汇总计数

例如

每次创建一个以字符串对作为键的事件时,都要创建一个单独的实体。这样,您将只有一个实体,即表示特定对的数据存储。那你就可以直接数数了。在

但是,当您获得大量这些实体时,您将需要开始执行一些额外的工作,以将它们计为单个实体查询.count()会变得太贵。然后,您需要开始研究使用数据存储的计数策略。在

相关问题 更多 >