通过执行以下操作将以下数据添加到数据存储中:
key = ds.key(
'User', 'alice',
'id'
)
entity = datastore.Entity(
key=key,
)
entity.update({"data": "big amount of information"})
entity.update({"property_name": "confidential"})
ds.put(entity)
然后,为了减少资源使用,我尝试通过使用以下查询来使用投影查询来获取较小的属性,而忽略实际上很大的“数据”:
key = ds.key(
'User', 'alice'
)
query = ds.query(ancestor=key)
query.projection = ["property_name"]
entities = list()
for entity in query.fetch():
entities.append(entity)
return entities
但我收到此错误:
google.api_core.exceptions.InvalidArgument: 400 Unable to plan or invalidate query.
答案 0 :(得分:2)
祖先查询需要组合索引,即使您要投影单个属性。确保已完成操作。