1

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

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

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

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

4

1 回答 1

2

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

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

另请参阅此论坛讨论

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

于 2013-08-16T08:36:46.167 回答