假设我有以下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>},但不幸的是,这只返回一个错误。
你不能-至少不能直接。(顺便说一下,你没有GQL数据库)。在
如果有少量的项,则将它们提取到内存中,并使用set操作生成唯一的集合,然后进行计数
如果有大量的实体使内存中的过滤和计数出现问题,那么您的策略是在创建它们时汇总计数
例如
每次创建一个以字符串对作为键的事件时,都要创建一个单独的实体。这样,您将只有一个实体,即表示特定对的数据存储。那你就可以直接数数了。在
但是,当您获得大量这些实体时,您将需要开始执行一些额外的工作,以将它们计为单个实体查询.count()会变得太贵。然后,您需要开始研究使用数据存储的计数策略。在
相关问题 更多 >
编程相关推荐