GAE:将多个实例中的整数属性的所有值相加(计算)的最佳方法



我的数据存储中大约有400多个特定模型("Grade")的模型实例。它们都有一个名为"points"的整数属性(points = db.IntegerProperty(default=0)),具有不同的值。

从每个实例中获得所有"点"值的累积和的最佳方法是什么?有没有一种方法可以做到这一点,而不必使用Model.all()检索所有实例?

您可以首先执行GQL查询以获取值为points> 0的所有实体的键:

SELECT __key__ FROM Grade WHERE points > 0

这样你只拉出你需要的实体,而忽略任何数学上无关紧要的实体。然后,您可以执行一个循环,通过为每个键执行db.get(key)并向变量添加点来检索您获得键的每个实体。

在GAE中,只获取键的查询效率更高,成本更低:http://code.google.com/appengine/docs/python/datastore/queries.html#Queries_on_Keys

最新更新