2017-02-16 7 views
1

Мне интересно, как получить все имена видов, которые хранятся в google cloud datastore в Python. Я имею в виду с помощью query,python Как получить все добрые имена в google cloud datastore

client = datastore.Client() 
query = client.query() 
results = query.fetch() 

но он получает только все объекты, сохраненные по умолчанию client. Итак, как получить все виды имен в этом случае?

ответ

1

Вы можете использовать kind metadata query для получения имен видов.

Если вы используете библиотеку Google Cloud Python, это будет выглядеть так:

query = client.query(kind='__kind__') 
query.keys_only() 

kinds = [entity.key.id_or_name for entity in query.fetch()] 
+0

Я попытался код, но 'kinds' также содержит некоторые сборки в видах, например, '< 'Список' класс>: [ '_AE_DatastoreAdmin_Operation', '_GAE_MR_TaskPayload', '__Stat_Kind_IsRootEntity__', '__Stat_Kind_NotRootEntity__', '__Stat_Kind__', '__Stat_PropertyName_Kind__', '__Stat_PropertyType_Kind__', '__Stat_PropertyType_PropertyName_Kind__', '__Stat_PropertyType__', '__Stat_Total __']' , Мне интересно, как сохранить только имя вида, созданное пользователем. – daiyue

0
In [15]: set([entity.kind for entity in client.query().fetch()]) 
Out[15]: {'SomeKind', 'AnotherKind'}