如何从 gae ndb 查询中获取单个值?

How to get a single value from gae ndb query?

我正在使用带有 ndb 后端的 Google App Engine,我想从 ndb 实体中获取单个值 ex: int,在任何查询之后,我都会得到带有投影的整个实体,在我的例子中,我有一个 Transactions 实体,我想对 amount 属性求和。

我现在使用的是对查询结果的列表理解,例如:

query = ndb.gql("select amount from Transactions").fetch()
result = sum([x.amount for x in query])

有什么方法可以使 ndb 查询 returns 仅包含金额列表,因此,我可以直接对查询结果求和,如:

query = ndb.gql("select amount from Transactions").fetch()
result = sum(query)

提前致谢

没有直接的方法从投影获取中获取值列表(我想你正在寻找 django orm Transactions.query().all().values() 的 ndb 模拟),你可以这样做如下:

result = sum([x.amount for x in Transactions.query().fetch(
    projection=[Transactions.amount,])])

https://cloud.google.com/appengine/docs/python/ndb/projectionqueries