在AppEngine中查找索引属性的最大值

时间:2013-08-16 00:24:24

标签: google-app-engine max indexed-properties

假设我在AppEngine DataStore中存储了几个实体,它们都具有索引的数字属性,我需要找到当前存在的最大值。

我可以简单地使用降序排序和限制为1对此属性进行排序的投影查询。返回的结果将包含我的答案。

这是最好的方法还是有更有效的方法来获得这个价值?

(在这种情况下,一致性并不是太担心。如果我错过了同时提交的几个值,我不会太在意。所以,这里不需要交易。)

1 个答案:

答案 0 :(得分:2)

由于GAE数据存储在SQL数据库上没有等效的MAX,因此最好按列排序并检索第一个条目。例如:

max_val = MyEntity.query().order(-MyEntity.my_numeric_field).get().my_numeric_field

另见this forum discussion

您的第二个选择是将最大值存储在某个其他实体中,然后在添加其中一个实体时更新它(可能在事务中)。