q = client.query(kind='transcription')
result = list(q.add_filter(filter=query.PropertyFilter("status", "=", "IN_PROCESS")).fetch())
print(result)
但是,当我跑步时,我得到了
google.api_core.exceptions.FailedPrecondition: 400 The query requires an ASC or DESC index for kind transcription and property status. Please use the gcloud CLI to remove the single-property index exemption for this property.
当我检查文档时,我发现我应该先创建一个索引,使用1个字段过滤器来执行查询我的索引看起来像这样
indexes:
- kind: transcription
properties:
- name: status
当我跑步时
gcloud datastore indexes create index.yaml
我得到了
ERROR: (gcloud.datastore.indexes.create) INVALID_ARGUMENT: This index:
Datastore index on 'transcription' for (status ASC)
is not necessary, since single-property indexes are built in. Please remove it from your index file and upgrade to the latest version of the SDK, if you haven't already.
看起来对于使用 1 个字段过滤器的查询,不需要索引。但为什么我仍然收到错误。
您的数据库模式错误。 您可以使用 gcloud 命令查看模式 (https://cloud.google.com/sdk/gcloud/reference/firestore/databases/describe)。要使用数据存储区 API,您需要处于数据存储区模式的 Firestore 中。