结合条件以通过GQL过滤祖先和财产

时间:2018-09-30 13:28:35

标签: google-app-engine google-cloud-datastore

我正在创建一个端点,以通过GQL查询我的数据存储区,我想指定祖先和属性,但是GQL似乎无法结合这两个条件。我错过了什么吗?

我的GQL是:
select * from Product where __key__ HAS ANCESTOR Key(modle1, '0') AND timestamp > 0

我使用了库:com.google.cloud.datastore 还有其他方法可以实现我的目标吗?

谢谢大家。

1 个答案:

答案 0 :(得分:1)

好吧,终于我弄清楚了我的问题。
我必须为查询上传索引定义。

因此,我遵循本指南-Cloud Datastore Indexes,尝试上传我的索引。 最终我成功了,但花了整整一个晚上。

如果您使用Google Cloud SDK来开发您的Appengine,则有一个关于上传索引的小提示。
许多问答或文档说,您应该使用appcfg.cmd / appcfg.py / appcfg.sh上传索引,但是如果您使用Google Cloud SDK而不是Google Appengine SDK开发appengine,则不应使用该命令。替换为

gcloud app deploy indexes.yaml
or
gcloud datastore create-indexes

参考:Migrating from AppCfg to gcloud Command Line

无论您使用什么开发引擎,都应编写index.yaml(如果使用Java开发,则会发现一些文档要求您编写datastore-indexes.xml,将其删除,gcloud似乎不支持该文件。 )。