我有一个“喜欢”系统来跟踪谁喜欢什么。
Like
模型的parent
是喜欢的对象。这可以是任何东西。对于此示例,请使用Car
。 Like
模型还具有account
属性,该属性确定谁喜欢该Car
。
我想知道在数据存储区/ NDB中是否可以查询最多的点赞次数。这并没有被标准化为仅在Car
对象上具有原始数字,但是我想知道这是否是唯一的真正方法。
[基本上,如果有10个不同的人喜欢一个Car
对象,而5个不同的人喜欢一个不同的Car
对象,那么将带有计数的那些列出来的项目看起来像什么查询?
[如果我知道要查询的Car
个对象,我可以简单地在Like
表中查询那些对象并只计算它具有的对象数,这显然为我提供了该Like
的总数Car
],但我正朝另一个方向发展。
如上所述,这是不可能的:没有实际的计数器属性,您首先需要执行单个查询以获取每个相关计数,然后执行附加步骤来确定这些计数的最大值。
但是,如果在喜欢的对象中添加liked
计数器属性(在示例中为Car
),而您在创建相应的Like
实体的同一交易中增加了该属性,则不再需要第一轮查询以获取计数。因此,您将能够对每种喜欢的对象(在示例中对Car
实体的查询)执行一次查询-由liked
属性排序(降序),并且可能具有结果计数限制-这将为您提供最喜欢的那种对象。