Com*_*ler 2 php google-app-engine gql google-cloud-datastore
KINDS我想使用查询从我的谷歌应用程序引擎数据存储中获取列表(GQL也许?)。例如,人们会简单地show tables使用数据库。
我看过类似的问题(How to list types in datastore?),但是它不能解决我的问题,因为它是 python 特定的。
我目前正在 PHP 中使用 GDS 库(https://github.com/tomwalder/php-gds),如果我知道使用 GQL 查询的实体名称,它可以帮助我从 GDS 获取数据"SELECT * FROM Kind"。
我目前所处的情况是,我可能不知道需要从中获取数据的实体种类的名称,因此需要获取实体种类列表,然后我可以查看并确认该实体是否存在,然后运行我的选择查询。
任何指示将不胜感激。
这是基于 GQL 的替代方法...这会返回可用种类的列表:
SELECT * FROM __kind__
Run Code Online (Sandbox Code Playgroud)
理论上,您可以通过列出给定 Kind(例如,Person)的关联属性来获取该对象的模式:
SELECT * FROM __property__
WHERE __key__ HAS ANCESTOR KEY(__kind__, 'Person')
Run Code Online (Sandbox Code Playgroud)
如果您使用 Google 的库来发出这些查询,那么您必须AllowLiterals = true在请求中设置该属性,以避免出现错误详细信息为 的异常Disallowed literal: KEY。
此外,由于property_representation诸如日期与整数之类的值被重载,因此您只能使用类型数据作为基础类型的猜测,可能使用约定。当您浏览数据时,您可以更新类型信息。奇怪的是,没有更好的方法,因为当您创建实体的新实例时,Google 的数据存储区 UI 会提供类型信息。