Key
クラスのインスタンスは不変の Datastore キーを表します。
このページには、API リファレンス ドキュメントがあります。概要については、NDB エンティティとキーをご覧ください。
はじめに
キーは Datastore の不変のキーです。アプリケーションは、これらのキーを使用してエンティティを参照します。保存されたエンティティには、キーがあります。エンティティのキーを取得するには、モデルの key プロパティを使用します。キーからエンティティを取得するには、Key
オブジェクトの get() メソッドを呼び出します。
キーでは、key1 == key2
や key1 < key2
のような比較ができます。
これらの演算子では、アプリケーション ID、名前空間、完全な「祖先パス」が比較されます。これらの演算子では、key プロパティやキーで順序付けを行うときに、データストアがクエリに使用するのと同じ順序付けが使用されます。
repr(key)
や str(key)
では、最短のコンストラクタ形式に類似した文字列表現が返され、デフォルト値と異なる場合を除き、アプリと名前空間が省略されます。
.hash(key)
が正常に機能します。したがって、キーをハッシュ テーブルに格納できます。
コンストラクタ
柔軟性と利便性を高めるため、複数のコンストラクタ署名がサポートされます。
- class Key(kind1, id1, kind2, id2, ...)
- class Key(pairs=[(kind1, id1), (kind2, id2), ...])
- class Key(flat=[kind1, id1, kind2, id2, ...])
- class Key(urlsafe=string)
-
位置引数 kind1、id1、kind2、id2 は「祖先」順です。(これは
flat=[kind1, id1, kind2, id2]
のショートカットです)子の前に親が置かれます。位置引数
pairs
、flat
コンストラクタ形式によって、parent=key を使用して別のキーが補助的に渡される場合があります。(kind、id)ペアが明示的に渡される前に、親キーの(kind、id)ペアが挿入されます。urlsafe
キーワード パラメータでは、websafe-base64 エンコードでシリアル化された参照が使用されますが、これを不明瞭な一意の文字列として考えることをおすすめします。追加のコンストラクタ キーワード引数:
- アプリ
- アプリケーション ID(文字列)を指定します。
- namespace
- 名前空間(文字列)を指定します。
データストアに影響を与えないインスタンス メソッド
次のメソッドは、キーのコンテンツにアクセスします。Datastore I/O アクティビティには関与しません。
- pairs()
-
(kind, id) ペアのタプルを返します。
- flat()
-
平坦化された kind と id の値のタプル (kind1, id1, kind2, id2, ...) を返します。
- app()
-
アプリケーション ID を返します。
- id()
-
最後の (kind, id) ペアの文字列または整数 ID を返し、キーが不完全な場合には
None
を返します。 - string_id()
-
最後の (kind, id) ペアの文字列 ID を返し、キーに整数 ID がある場合またはキーが不完全な場合には
None
を返します。 - integer_id()
-
最後の (kind, id) ペアの整数 ID を返し、キーが文字列 ID の場合またはキーが不完全な場合には
None
を返します。 - namespace()
-
名前空間を返します。
- kind()
-
最後の (kind, id) ペアの種類を返します。
- parent()
-
最後の (kind, id) を除くすべてのペアから生成されたキーを返し、(キーに (kind, id) ペアが 1 つしかない場合には
None
を返します)。 - urlsafe()
-
ウェブセーフな Base64 エンコードのシリアル バージョンのキーを返します。
注: URL セーフの文字列は暗号のように見えますが、暗号化されているわけではありません。簡単にデコードして、元のエンティティの種類と ID を復元できます
- to_old_key()
-
古い Datastore API(
db
)の場合、Key
を返します。
データストアに影響を与えるインスタンス メソッド
この種のメソッドは、データストアと情報を交換します。
- get(**ctx_options)
-
キーのエンティティを返します。
引数
- **ctx_options
- コンテキスト オプション
- get_async(**ctx_options)
-
最終的な結果がキーのエンティティになる
Future
を返します。引数
- **ctx_options
- コンテキスト オプション
- delete(**ctx_options)
-
キーのエンティティを削除します。
引数
- **ctx_options
- コンテキスト オプション
- delete_async(**ctx_options)
-
キーのエンティティを非同期的に削除します。
引数
- **ctx_options
- コンテキスト オプション
クラスメソッド
- from_old_key(k)
-
渡された「古い」 Datastore API(
db
)Key
から NDB キーを返します。引数
- **ctx_options
- コンテキスト オプション