如何对 Google 数据存储区查询结果中的属性列表求和?

How do I sum a list of attributes from a Google Datastore query result?

正在寻找一种使用 ndb 查询对属性列表求和的有效方法。目前我只是获取结果并 运行 对它们进行 for 循环。

class Player(ndb.Model):
    score = ndb.IntegerProperty()

score_of_group = 0
all_players = Player.query().filter("various filters").fetch()
for player in all_players:
    score_of_group += player.score

如果那是您拥有的模型(单个模型)并且您的'''various filters' 只是过滤该单个模型的不同方法,我认为您不能直接在查询中求和。

对于 Python 代码本身,您可以使用内置的 sum 函数,因此您的代码可能类似于

    all_players = Player.query().filter("various filters").fetch()
    score_of_group = sum([x.score for x in all_players])

如果您恰好有至少 2 个模型,并且您正在根据另一个模型中的值从另一个模型中获取记录(例如,您有一个人员列表,您需要从中检索他们的所有 plays/scores另一个 table),那么你应该看看 @ndb.tasklet 来加速数据 retrieval/make 它更有效率,但你仍然需要自己总结