2017-02-16 2 views
1

google cloud datastoreに格納されているすべての種類の名前を取得するにはどうすればいいですかPython。私は、queryを使用してのpythonどのようにグーグルクラウドのデータストア内のすべての種類の名前を取得する

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

を考えていますが、それは唯一のデフォルトclientで保存されているすべてのエンティティを取得します。この場合、どのようにすべての種類の名前を取得するのですか?

答えて

1

kind metadata queryを使用して種別名を取得できます。

は、Googleクラウド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'} 
関連する問題