【问题标题】:app engine max occurrence query应用引擎最大出现次数查询
【发布时间】:2014-03-26 12:08:18
【问题描述】:

我有以下实体结构(表)

class MovieStatus(ndb.Model): 
     movie_name = ndb.TextProperty()
     preference = ndb.IntergerPropety()  

我的条目如下所示,

movie_name  |  preference
Highway             3
Highway             1   
Queen               1
Queen               1  
Highway             2
Queen               2
Queen               1

我想获得最大数量为 1 的电影名称作为首选项

在上述情况下Queen is appeared max times(3 times) with preference 1 所以我的预期答案是Queen?这种查询有什么想法吗?

我目前可以使用

对其进行排序
MovieStatus.query().order(MovieStatus.preference, MovieStatus.movie_name)

movie_name  |  preference
Highway             1   
Queen               1
Queen               1
Queen               1
Highway             2
Queen               2
Highway             3

我也尝试按语法搜索组,但对于数据存储,我找不到它。

【问题讨论】:

  • 没有分组依据。您需要在代码中执行此操作。
  • 您使用的是什么运行时?如果您使用的是 Python,我建议您为每个电影偏好使用一个计数器并进行比较。我推荐LiveCount
  • @David 是的,我正在使用 python,很好,计数器是不错的选择,谢谢

标签: google-app-engine google-cloud-datastore gql


【解决方案1】:

你已经有了答案。没有“类似 SQL”的功能,您对数据存储区所能做的就是查询具有基本条件的实体,并以编程方式处理您的结果……就像您刚才所做的那样。

您可以做的唯一不同的事情是创建额外的实体,专门用于为每部电影计数,并在创建新的“MovieStatus”实体时更新它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多