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

时间:2016-08-26 05:39:01

标签: python google-app-engine google-cloud-datastore app-engine-ndb gql

我正在使用带有ndb后端的Google App Engine,我希望从ndb实体获得单个值ex:int,在任何查询之后,我得到整个实体的投影,在我的情况下我有一个交易实体,我想总结金额属性。

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

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

有没有办法让ndb查询只返回一个金额列表,所以,我可以直接求和查询结果:

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

提前致谢

1 个答案:

答案 0 :(得分:3)

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

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

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