我想从我的谷歌应用引擎数据存储区使用查询获取 KINDS
列表( GQL
也许?) . 例如,人们只需要数据库的方式 .
我看过一个类似的问题(How to list kinds in datastore?),但它并没有解决我的问题,因为它是特定于python的 .
我目前正在使用PHP中的GDS库(https://github.com/tomwalder/php-gds),如果我使用 "SELECT * FROM Kind"
GQL查询知道实体名称,它可以帮助我从GDS获取数据 .
我目前处于这样一种情况:我可能不知道实体KIND的名称,我需要从中获取数据,因此需要获取实体KINDS列表,然后我可以查看并确认实体是否存在,然后运行我的选择查询 .
任何指针都将非常感激 .
2 回答
您可以使用ndb的元数据对象查询它们 .
https://cloud.google.com/appengine/docs/python/ndb/metadata#get_kinds
这是基于GQL的替代方法...这将返回可用种类的列表:
理论上,您可以通过列出给定种类(例如,Person)的关联属性来获取此对象的模式:
如果您使用Google的库发出这些查询,那么您必须在请求中设置 AllowLiterals = true 属性,以避免出现带有错误详细信息
Disallowed literal: KEY
的异常 .此外,由于
property_representation
值因Dates vs Integers之类的内容而被重载,因此您只能使用类型数据作为底层类型的猜测,可能使用约定 . 当您浏览数据时,您可以更新类型信息 . 它是一种更好的方式,因为Google的数据存储区UI在您创建实体的新实例时提供类型信息 .