NDB Key クラス

Key クラスのインスタンスは不変の Datastore キーを表します。

このページには、API リファレンス ドキュメントがあります。概要については、NDB エンティティとキーをご覧ください。

はじめに

キーは Datastore の不変のキーです。アプリケーションは、これらのキーを使用してエンティティを参照します。保存されたエンティティには、キーがあります。エンティティのキーを取得するには、モデルの key プロパティを使用します。キーからエンティティを取得するには、Key オブジェクトの get() メソッドを呼び出します。

キーでは、key1 == key2key1 < 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)

位置引数 kind1id1kind2id2 は「祖先」順です。(これは flat=[kind1, id1, kind2, id2] のショートカットです)子の前に親が置かれます。

位置引数 pairsflat コンストラクタ形式によって、parent=key を使用して別のキーが補助的に渡される場合があります。(kindid)ペアが明示的に渡される前に、親キーの(kindid)ペアが挿入されます。

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(dbKey から NDB キーを返します。

引数

**ctx_options
コンテキスト オプション