【发布时间】:2017-10-20 09:54:53
【问题描述】:
我在 Google App Engine 上使用google cloud datastore library 一个灵活的环境。
我有一个run 实体,用作pathway 实体的父级:
ds = datastore.Client('project-name')
parent = ds.query(kind='run', order=('-timestamp',)).fetch(1)
parent = list(parent)[0]
print(parent.key) # <Key('run', 1), project=project-name>
如果我获取一些 pathway 实体,它们似乎有正确的父级
pathways = ds.query(kind='pathway', order=('-timestamp',)).fetch(limit=10)
for pathway in pathways:
print(pathway.key.parent) # <Key('run', 1), project=project-name>
但如果我尝试像这样使用父级过滤:
pathways = ds.query(kind='pathway', ancestor=parent.key, order=('-timestamp',)).fetch(limit=10)
然后我得到一个错误:
google.api.core.exceptions.PreconditionFailed
google.api.core.exceptions.PreconditionFailed: 412 no matching index found. recommended index is:
- kind: pathway
ancestor: yes
properties:
- name: timestamp
direction: desc
如何正确过滤父实体?
【问题讨论】:
标签: python google-app-engine google-cloud-datastore