Есть ли способ получить список всех хранилищ данных Google & quot; KIND & quot; используя запросы

Я хотел бы получить список KINDS из моего хранилища данных Google App Engine с помощью запросов (GQL может быть?). Например, как просто show tables базы данных.

Я посмотрел на похожий вопрос (Как перечислить виды в хранилище данных?), однако это не решает мою проблему, поскольку это специфично для Python.

В настоящее время я использую библиотеку GDS в PHP (https://github.com/tomwalder/php-gds), который помогает мне получать данные из GDS, если я знаю имя сущности, используя "SELECT * FROM Kind" GQL-запрос.

В настоящее время я нахожусь в ситуации, когда я могу не знать имя Entity KIND, из которого мне нужно получить данные, отсюда необходимость получить список Entity KINDS, который я затем смогу просмотреть и подтвердить, существует ли сущность, а затем запустить мой выберите запрос.

Любые указатели будут с благодарностью.

0

Решение

Вы можете запросить их, используя объекты метаданных ndb.

https://cloud.google.com/appengine/docs/python/ndb/metadata#get_kinds

2

Другие решения

Вот альтернативный подход, основанный на GQL … Это возвращает список доступных видов:

SELECT * FROM __kind__

Теоретически вы можете затем получить схему для этого объекта, перечислив связанные свойства для данного вида (например, персона):

SELECT * FROM __property__
WHERE __key__ HAS ANCESTOR KEY(__kind__, 'Person')

Если вы используете библиотеку Google для выдачи этих запросов, вам придется установить AllowLiterals = true свойство в вашем запросе, чтобы избежать получения исключения с подробным описанием ошибки Disallowed literal: KEY,

Кроме того, так как property_representation Значения перегружены для таких вещей, как Даты против Целых чисел, тогда вы можете использовать данные типа только в качестве предположения о базовом типе, возможно, используя соглашения. Когда вы перемещаетесь по данным, вы можете обновить информацию о типе. Любопытно, что лучшего способа нет, поскольку пользовательский интерфейс Google Datastore предоставляет информацию о типах при создании нового экземпляра сущности.

1

По вопросам рекламы [email protected]