【发布时间】:2018-08-25 12:30:03
【问题描述】:
我的 TwAccount 是
class TwAccount(ndb.Model):
100 different properties here
error = ndb.IntegerProperty(repeated=True)
我试试:
twaccount_dbs = model.TwAccount.query().filter(ndb.GenericProperty('followuserfollowme') == True)
它返回 1 个实体
但我只想查询 1 个属性。
twaccount_dbs = model.TwAccount.query().filter(ndb.GenericProperty('followuserfollowme') == True).fetch(projection=["error"])
然后它返回 0 个实体。
我试试
twaccount_dbs = model.TwAccount.query().filter(ndb.GenericProperty('followuserfollowme') == True).fetch(projection=[model.TwAccount.error])
但它也返回 0 个实体
我希望它返回 1 个实体。
更新 1: 我发现如果错误是一个 emtpy(所以它不存在),那么投影查询将返回 0
我的目标是查询 TwAccount 中的所有实体。如果 error 为空,则执行 deferred.defer(function,entity_key)。
我想使用投影查询来节省阅读成本。不可能吗?
【问题讨论】:
-
您的
TwAccount.error属性是否已编入索引? -
是的,它已编入索引。我更新了我的问题。我发现如果错误是一个 emtpy(所以它不存在),那么投影查询将返回 0。我的目标是查询 TwAccount 中的所有实体。如果错误为空,则执行 deferred.defer(function,entity_key)。我想使用投影查询来节省阅读成本。不可能吗?
标签: google-app-engine google-cloud-datastore app-engine-ndb