google.appengine.api.datastore モジュール

概要

アプリ デベロッパーが使用する Python Datastore API。

Entity、Query、Iterator の各クラスと、すべてのデータストアの呼び出しのメソッドを定義します。また、Python クラスとその対応する PB の間の変換を定義します。

データストアのエラーは、datastore_errors モジュールで定義されます。datastore_errors モジュールは、循環インポートを避けるためにのみ必要です。datastore は BadValueError を必要とする datastore_types をインポートするため、BadValueError は datastore では定義できません。

内容

google.appengine.api.datastore.AllocateIds(model_key, size=None, **kwargs)ソース

指定されたキーについて、size または max で ID の範囲を割り当てます。

データストアで ID の範囲を割り当てて、これらの ID が新しいエンティティに自動的に割り当てられないようにします。アプリケーションからは、モデルキーの ID のみを割り当てることができます。エラーがある場合は、datastore_errors.Error のサブクラスを生成します。

size または max のいずれかを指定する必要があります。両方を指定することはできません。size が指定されている場合は、指定された size の範囲が返されます。max が指定されている場合は、max の上限で安全に使用できる ID の最大範囲が返されます(空の範囲にすることもできます)。

ID をすでに持っているエンティティを一括読み込みする場合など、予約する必要がある数値 ID 範囲が存在する場合にのみ、max を指定する必要があります。受け取る ID を確認する必要がない場合は、代わりに size を使用します。

パラメータ
  • model_key - ID を割り当てる ID シーケンスを指定するモデルとして機能するキーまたは文字列。

  • size - 整数で、割り当てる ID の数。

  • max - 整数で、割り当てる ID の範囲の上限。

  • config - このリクエストに使用するオプションの構成。

戻り値

割り当てた範囲の start、end(両端を含みます)。

google.appengine.api.datastore.AllocateIdsAsync(model_key, size=None, **kwargs)ソース

非同期的に ID の範囲を割り当てます。

非同期オブジェクトを返す点を除き、datastore.AllocateIds() と同じです。get_result() を呼び出し、戻り値に応じて呼び出しをブロックし、結果を取得します。

google.appengine.api.datastore.CreateConfig(**kwds)ソース

データストア呼び出しの構成に使用する構成オブジェクトを作成します。

この構成は、「config=…」引数を使用してほとんどのデータストア呼び出しに渡すことができます。

パラメータ
  • deadline - オプションの期限。デフォルトは None です(システムのデフォルト期限が使用されます。通常は 5 秒です)。

  • on_completion - オプションのコールバック関数。デフォルトは None です。指定されている場合、RPC が完了すると UserRPC オブジェクトを引数として呼び出されます。

  • read_policy - オプションの読み取りポリシー。EVENTUAL_CONSISTENCY に設定すると、結果整合性のある読み取りが可能になります(場合によっては、古いバージョンのデータストアから読み取りが行われる可能性があります)。デフォルトの読み取りポリシーでは、処理中のトランザクションがコミットされるまで待機する必要がある場合があります。

  • **kwds - 他のキーワード引数(datastore_rpc.Configuration() によってサポートされている場合)。

戻り値

datastore_rpc.Configuration インスタンス。

google.appengine.api.datastore.CreateRPC(service='datastore_v3', deadline=None, callback=None, read_policy=None)ソース

データストア呼び出しの構成に使用する rpc を作成します。

注: この関数は下位互換性のために存在します。代わりに CreateConfig() を使用してください。注: 後者は引数をとる関数である「on_completion」を使用します。CreateRPC は引数なしの関数である「callback」を使用します。

パラメータ
  • service - オプションの文字列。下位互換性を維持するには、「datastore_v3」にする必要があります。

  • deadline - オプションの int または float の呼び出し期限(秒単位)。

  • callback - この rpc が完了するとトリガーされる、オプションの呼び出し可能なコールバック。引数はありません。

  • read_policy - オプションの読み取りポリシー。EVENTUAL_CONSISTENCY に設定すると、結果整合性のある読み取りが可能になります(場合によっては、古いバージョンのデータストアから読み取りが行われる可能性があります)。デフォルトの読み取りポリシーでは、処理中のトランザクションがコミットされるまで待機する必要がある場合があります。

戻り値

UserRPC インスタンス。

google.appengine.api.datastore.CreateTransactionOptions(**kwds)ソース

トランザクションの構成に使用する構成オブジェクトを作成します。

この構成は、run_in_transaction_option の最初の引数として渡すことができます。

パラメータ
  • deadline - オプションの期限。デフォルトは None です(システムのデフォルト期限が使用されます。通常は 5 秒です)。

  • on_completion - オプションのコールバック関数。デフォルトは None です。指定されている場合、RPC が完了すると UserRPC オブジェクトを引数として呼び出されます。

  • xg - クロスグループ トランザクションを許可する場合は true に設定します(高レプリケーション データストアのみ)。

  • retries - トランザクションの再試行回数を設定します。

  • **kwds - 他のキーワード引数(datastore_rpc.TransactionOptions() によってサポートされている場合)。

戻り値

datastore_rpc.TransactionOptions インスタンス。

class google.appengine.api.datastore.DatastoreAdapter(_id_resolver=None)ソース

ベース: google.appengine.datastore.datastore_rpc.AbstractAdapter

ここで定義されたデータ型(Entity など)と protobuf の間のアダプタ。

他のドキュメントについては、datastore_rpc.py の基本クラスをご覧ください。

entity_to_pb(entity)ソース
index_direction_mappings = {1: 1, 2: 2}
index_state_mappings = {1: 0, 2: 1, 3: 2, 4: 3}
key_to_pb(key)ソース
pb_to_entity(pb)ソース
pb_to_index(pb)ソース
pb_to_key(pb)ソース
google.appengine.api.datastore.Delete(keys, **kwargs)ソース

データストアから 1 つ以上のエンティティを削除します。慎重に使用してください。

指定されたエンティティをデータストアから削除します。アプリケーションからはエンティティのみを削除できます。エラーがある場合は、datastore_errors.Error のサブクラスを生成します。

パラメータ
  • 主キー(#) -

  • keys - キーまたは文字列、あるいはキーまたは文字列のリスト。

  • config - このリクエストに使用するオプションの構成。キーワード引数として指定する必要があります。

発生

Delete をコミットできなかった場合は TransactionFailedError。

google.appengine.api.datastore.DeleteAsync(keys, **kwargs)ソース

1 つ以上のエンティティをデータストアから非同期的に削除します。

非同期オブジェクトを返す点を除き、datastore.Delete() と同じです。get_result() を呼び出して、戻り値で呼び出しをブロックします。

class google.appengine.api.datastore.Entity(kind, parent=None, _app=None, name=None, id=None, unindexed_properties=[], namespace=None, **kwds)ソース

ベース: dict

データストア エンティティ。

アプリ ID、種類、主キーの読み取り専用アクセサが含まれています。辞書スタイルのプロパティへのアクセスも提供します。

static FromPb(pb, validate_reserved_properties=True, default_kind='')ソース

静的ファクトリ メソッド。指定されたプロトコル バッファのエンティティ表現(datastore_pb.Entity)を返します。

パラメータ
  • pb - datastore_pb.Entity または datastore_pb.Entity の str エンコーディング。

  • validate_reserved_properties - 非推奨。

  • default_kind - str(pb にキーがない場合に使用する種類)。

戻り値

pb のエンティティ表現

戻り値の型

エンティティ

ToPb()ソース

このエンティティをプロトコル バッファ表現に変換します。

戻り値

entity_pb.Entity

ToXml()ソース

このエンティティの XML 表現を返します。Atom と gd:namespace プロパティはそれぞれのスキーマに従って XML に変換されます。詳細については、以下のページをご覧ください。

http://www.atomenabled.org/developers/syndication/ http://code.google.com/apis/gdata/common-elements.html

これは最適化されていません。パフォーマンスが重要なコードの近くでは使用しないでください。

app()ソース

このエンティティを作成したアプリケーションの名前の文字列を返します。設定されていない場合は None を返します。

copy()ソース

copy メソッドはサポートされていません。

entity_group()ソース

このエンティティのエンティティ グループをキーとして返します。

これがルート エンティティで、そのキーが不完全な場合、返されるキーは不完全になります。

is_projection()ソース

このエンティティが完全なエンティティからの射影であるかどうかを返します。

射影されるエンティティ: - 元のエンティティの一部のプロパティのみが含まれることがあります。- リストの単一の値のみが含まれます。- 元のエンティティと同じ型の値を含むことはできません。

is_saved()ソース

このエンティティがデータストアに保存されているかどうかを返します。

key()ソース

このエンティティの主キーである Key インスタンスを返します。

kind()ソース

このエンティティの種類として文字列を返します。

namespace()ソース

このエンティティの名前空間として文字列または None を返します。

parent()ソース

このエンティティの親をキーとして返します。このエンティティに親がない場合は、None を返します。

set_unindexed_properties(unindexed_properties)ソース
setdefault(name, value)ソース

プロパティが存在する場合は、その値を返します。そうでない場合は value に設定します。

プロパティ名が空の文字列であるか、文字列でない場合、BadPropertyError が発生します。サポートされていない型の値である場合、BadValueError が発生します。

unindexed_properties()ソース

文字列のフローズンセットとして、このエンティティのインデックス化されていないプロパティを返します。

update(other)ソース

他のエンティティの値から、このエンティティのプロパティを更新します。

プロパティ名が空の文字列であるか、文字列でない場合、BadPropertyError が発生します。サポートされていない型の値である場合、BadValueError が発生します。

google.appengine.api.datastore.Get(keys, **kwargs)ソース

データストアから 1 つ以上のエンティティを取得します。

指定されたキーを持つエンティティをデータストアから取得し、以下に定義されているように完全に生成された Entity オブジェクトとして返します。エラーがある場合、datastore_errors.Error のサブクラスを生成します。

キーが単一のキーまたは文字列の場合、エンティティが返されます。既存のエンティティがキーに一致しない場合は、EntityNotFoundError が発生します。

ただし、キーがリストまたはタプルの場合、一連のキーに対応するエンティティのリストが返されます。これには、見つかったキーのエンティティと、見つからなかったキーの None プレースホルダが含まれます。

パラメータ
  • keys - キーまたは文字列、あるいはキーまたは文字列のリスト。

  • config - このリクエストに使用するオプションの構成。キーワード引数として指定する必要があります。

戻り値

エンティティまたは Entity オブジェクトのリスト

google.appengine.api.datastore.GetAsync(keys, **kwargs)ソース

1 つ以上のエンティティをデータストアから非同期的に取得します。

非同期オブジェクトを返す点を除き、datastore.Get() と同じです。get_result() を呼び出し、戻り値に応じて呼び出しをブロックし、結果を取得します。

google.appengine.api.datastore.GetIndexes(**kwargs)ソース

アプリケーションのインデックスとその状態を取得します。

パラメータ

config - このリクエストに使用するオプションの構成。キーワード引数として指定する必要があります。

戻り値

(Index, Index.[BUILDING|SERVING|DELETING|ERROR]) タプルのリスト。インデックスの状態は次のとおりです。

Index.BUILDING: インデックスが作成中で、クエリで使用できません。Index.SERVING: インデックスはクエリで使用できます。Index.DELETING: インデックスを削除しています。Index.ERROR: BUILDING 状態のインデックスでエラーが発生しました。

google.appengine.api.datastore.GetIndexesAsync(**kwargs)ソース

アプリケーションのインデックスとその状態を非同期的に取得します。

非同期オブジェクトを返す点を除き、GetIndexes() と同じです。get_result() を呼び出し、戻り値に応じて呼び出しをブロックし、結果を取得します。

google.appengine.api.datastore.GetRpcFromKwargs(kwargs, convert_rpc=False, config_class=google.appengine.datastore.datastore_rpc.Configuration)ソース

キーワード引数から構成オブジェクトを取得します。

これは純粋に、Get() など、以下のさまざまな公開 API の内部ヘルパーです。

パラメータ
  • kwargs - 公開 API に渡されるキーワード引数を含む辞書。

  • convert_rpc - rpc を変換する必要があるか、直接渡すか。

  • config_class - 生成される必要がある config クラス。

戻り値

UserRPC インスタンス、Configuration インスタンス、または None。

発生

予期しないキーワード引数が存在する場合は、TypeError。

class google.appengine.api.datastore.Index(index_id, kind, has_ancestor, properties)ソース

ベース: google.appengine.api.datastore._BaseIndex

データストア インデックス。

HasAncestor()ソース

これが上位のインデックスかどうかをブール値で示します。

Id()ソース

long 型のインデックス ID を返します。

Kind()ソース

インデックスの種類として文字列を返します。存在しない場合は空の文字列(‘’)。

Properties()ソース

インデックスのプロパティを返します。(index name as a string, [ASCENDING|DESCENDING]) タプルのタプル。

google.appengine.api.datastore.IsInTransaction()ソース

トランザクションですでに実行中かどうかを確認します。

戻り値

すでにトランザクションで実行されている場合は True、そうでない場合は False。

class google.appengine.api.datastore.Iterator(batcher)ソース

ベース: google.appengine.datastore.datastore_query.ResultsIterator

datastore_query.ResultsIterator シンラッパー。

非推奨。後方互換性のためにのみ使用してください。

GetCompiledCursor(query)ソース
GetIndexList()ソース

クエリを実行するために使用されるインデックスのリストを返します。

index_list()ソース

クエリを実行するために使用されるインデックスのリストを返します。

class google.appengine.api.datastore.MultiQuery(bound_queries, orderings)ソース

ベース: google.appengine.api.datastore.Query

複数のデータストア クエリを必要とするクエリを表すクラス。

このクラスは、通常の Query オブジェクトのように動作する(同じインターフェースをサポートする)ように意図されているため、実際には datastore.Query のサブクラスです。

結合して並べ替えるにはエンティティ全体が必要となるため、キーのみのクエリはサポートされません(これは、並べ替え順序がない場合、または並べ替え順序が __key__ の場合には該当しませんが、そのような場合にはキーのみのクエリを許可し、それ以外の場合に許可しないと、混乱を招きます)。

Count(limit=1000, **kwargs)ソース

このクエリの一致するエンティティの数を返します。

重複しない結果の数を返します。制限が指定された場合に、より効率的な Get() 関数を呼び出します。

パラメータ
  • limit - カウントするエントリの最大数(limit よりも結果が多い場合は

  • limit の数が返されます) –

  • config - このリクエストに使用するオプションの構成。

戻り値

返されたエントリ数のカウント。

Get(limit, offset=0, **kwargs)ソース

非推奨。代わりに list(Run(…)) を使用してください。

パラメータ
  • limit - 返すエンティティの最大数を表す int または long。

  • offset - スキップするエンティティの数を表す int または long。

  • kwargs - datastore_query.QueryOptions() で受け入れられるキーワード引数。

戻り値

「limit」の数までのエントリを含むエンティティのリスト(制限値を読み取る前にクエリが完了した場合は少なくなります)。

GetCompiledCursor()ソース
GetCompiledQuery()ソース

内部のみ、使用しないでください。

GetCursor()ソース
GetIndexList()ソース
Run(**kwargs)ソース

すべての結果を含む反復可能な出力を順番に返します。

結果を結合して並べ替えます。最初にイテレータのリストを作成し、それらを順に処理し、結果を順番に生成します。

パラメータ

kwargs - datastore_query.QueryOptions() で受け入れられるキーワード引数。

戻り値

結果セットのイテレータ。

class SortOrderEntity(entity_iterator, orderings)ソース

ベース: object

指定された順序を使用してエンティティの比較を許可します。

コンストラクタに渡されたイテレータは、最終的に GetNext() の呼び出しによって消費され、同じ順序で新しい SortOrderEntity を生成します。

CmpProperties(that)ソース

2 つのエンティティを比較し、相対順序を返します。

現在の並べ替え順序に基づいてそれ自体と that を比較して、そのキー順序を比較します。それ自体が that よりも小さいか、等しいか、大きいかによって、負、0、または正を返します。この比較は、すべての値が昇順(最も高い値が最後)に配置されているかのように返されます。並べ替え順序のみを使用して比較します(

キーは無視します)。

パラメータ

that - SortOrderEntity

戻り値

それ自体が that より小さい場合は負、それ自体が that と等しい場合は 0、それ自体が that より大きい場合は正

GetEntity()ソース

ラップされたエンティティを取得します。

GetNext()ソース

次のエンティティをラップし、返します。

エンティティは、構築時に指定されたイテレータから取得されます。

google.appengine.api.datastore.NonTransactional(*args, **kwds)ソース

関数を保証するデコレータは、トランザクション外で実行されます。

トランザクションが存在し、allow_existing が True の場合、その関数が実行されている間、既存のトランザクションは一時停止されます。

パラメータ
  • _func - 使用しないでください。

  • allow_existing - false の場合、トランザクション内から呼び出されると例外がスローされます。

戻り値

トランザクション外で実行されるようにするデコレート関数のラッパー。

google.appengine.api.datastore.NormalizeAndTypeCheck(arg, types)ソース

指定した引数を正規化して型チェックを行います。

パラメータ
  • arg - 指定された型のインスタンスまたは反復

  • types - 許可された型または型のタプル

戻り値

(list, bool) タプル。リストは、引数の正規化されたシャローコピーです。ブール値は、引数がシーケンスの場合は True、単一のオブジェクトの場合は False です。

発生
  • AssertionError - 型はリストまたはタプルを含みます。

  • BadArgumentError - arg は指定されたいずれかの型のインスタンスまたはシーケンスでは

  • ありません。

google.appengine.api.datastore.NormalizeAndTypeCheckKeys(keys)ソース

指定された引数が有効なキーであるように正規化して型チェックを行います。

文字列、キー、エンティティを受け入れ、キーに正規化する NormalizeAndTypeCheck() を基盤としたラッパー。

パラメータ

keys - キーまたはキーのシーケンス

戻り値

(list of Keys, bool) タプル。NormalizeAndTypeCheck をご覧ください。

発生
  • BadArgumentError - arg は指定されたいずれかの型のインスタンスまたはシーケンスでは

  • ありません。

google.appengine.api.datastore.Put(entities, **kwargs)ソース

1 つ以上のエンティティをデータストアに格納します。

エンティティは新規のものでも、既存のものでも可能です。新しいエンティティの場合、Put() でデータストアによって割り当てられたアプリ ID とキーが入力されます。

引数が単一のエンティティの場合、単一のキーが返されます。引数がエンティティのリストである場合、キーのリストが返されます。

パラメータ
  • entities - エンティティまたはエンティティのリスト。

  • config - このリクエストに使用するオプションの構成。キーワード引数として指定する必要があります。

戻り値

キーまたはキーのリスト

発生

Put をコミットできなかった場合は TransactionFailedError。

google.appengine.api.datastore.PutAsync(entities, **kwargs)ソース

1 つ以上のエンティティをデータストアに非同期的に格納します。

非同期オブジェクトを返す点を除き、datastore.Put() と同じです。get_result() を呼び出し、戻り値に応じて呼び出しをブロックし、結果を取得します。

class google.appengine.api.datastore.Query(kind=None, filters={}, _app=None, keys_only=False, compile=True, cursor=None, namespace=None, end_cursor=None, projection=None, distinct=None, _namespace=None)ソース

ベース: dict

データストア クエリ。

代わりに、appengine.ext.gql.Query の使用を検討してください。これは、同じ機能に加えて、クエリ言語インターフェースを提供します。

クエリは、アプリ ID、種類、プロパティ フィルタを含む、特定の条件に一致するエンティティを取得するために使用されます。結果はプロパティによって並べ替えることもできます。

アプリケーション ID と種類が必要です。指定された型の、指定されたアプリケーションからのエンティティのみが返されます。Ancestor() で祖先が設定されている場合、その祖先を持つエンティティのみが返されます。

プロパティ フィルタは、個々のプロパティ値に基づいて条件を指定するために使用されます。フィルタにより、各エンティティ内の特定のプロパティが、指定された値または有効な値のリストと比較されます。

プロパティ値がすべてのクエリのフィルタと一致すると、エンティティが返されます。つまり、フィルタは OR ではなく AND で結合されます。エンティティがフィルタで使用されるプロパティの値を持っていない場合、エンティティは返されません。

プロパティ フィルタによって、‘<property name> <operator>’ という形式のフィルタ文字列がフィルタ値にマッピングされます。次のように、辞書アクセサを使用してプロパティ フィルタを設定します。

> query = Query(‘Person’) > query[‘name =’] = ‘Ryan’ > query[‘age >=’] = 21

このクエリでは、name プロパティが「Ryan」で age プロパティが 21 以上の Person エンティティをすべて返します。

このクエリを作成する別の方法は次のとおりです。

> query = Query(‘Person’) > query.update({‘name =’: ‘Ryan’, ‘age >=’: 21})

サポートされる演算子は =、>、<、>=、<= です。クエリごとに使用できる不等式フィルタは 1 つのみです。1 つのクエリで任意の数の等式フィルタを使用できます。

フィルタ値は、値のリストまたはタプルです。これは、同じフィルタ文字列と異なる値を持つ複数のフィルタとして解釈され、すべて AND で結合されます。たとえば、次のクエリでは、タグ「google」と「app engine」を持つすべてのユーザーが返されます。

> Query(‘Person’, {‘tag =’: (‘google’, ‘app engine’)})

結果エンティティは異なる順序で返すことができます。Order() メソッドを使用して、結果が並べ替えられる基準と方向のプロパティを指定します。

フィルタと順序は、クエリが実行される前は、いつでも指定できます。クエリが完全に指定されると、Run() によってクエリが実行されて、イテレータが返されます。クエリ結果には、イテレータを介してアクセスできます。

クエリ オブジェクトは、実行後に再利用できます。そのフィルタと順序を変更して、変更されたクエリを作成することができます。

必要な結果エンティティの数がわかっている場合は、Get() を使用して取得します。

> query = Query(‘Person’, {‘age >’: 21}) > for person in query.Get(4): > print ‘I have four pints left. Have one on me, %s!’ % person[‘name’]

必要な結果の数がわからない場合、またはそれらがすべて必要な場合は、Run() を呼び出して結果に対するイテレータを取得できます。

> for person in Query(‘Person’, {‘age >’: 21}).Run(): > print ‘Have a pint on me, %s!’ % person[‘name’]

Get() は Run() より効率的であるため、可能な限り Get() を使用してください。

最後に、Count() メソッドで、クエリと一致する結果エンティティの数が返されます。返されたカウントはキャッシュされます。クエリが変更されない限り、連続した Count() 呼び出しでデータストアが再スキャンされることはありません。

ANCESTOR_FIRST = 2
ASCENDING = 1
Ancestor(ancestor)ソース

このクエリの祖先を設定します。

これによりクエリが限定され、特定のエンティティの子孫である結果エンティティのみが返されます。つまり、すべての結果は、親、または親の親などとしてその祖先を持ちます。

親がデータストアの既存のエンティティでも、キーでもない場合、BadArgumentError または BadKeyError が発生します。

パラメータ
  • キーは完全である必要があります(#) -

  • ancestor - エンティティまたはキー

戻り値

# 次のクエリ Query

Count(limit=1000, **kwargs)ソース

このクエリが一致するエンティティの数を返します。

パラメータ
  • 数値または None。これ以上の結果がある場合は、停止します(limit) -

  • この数のみを返します。この引数を指定すると、カウント(and) -

  • がより効率的になります。(operation) -

  • config - このリクエストに使用するオプションの構成。

戻り値

結果の数。

DESCENDING = 2
FILTER_FIRST = 3
FILTER_REGEX = <_sre.SRE_Pattern object>
Get(limit, offset=0, **kwargs)ソース

非推奨。代わりに list(Run(…)) を使用してください。

パラメータ
  • limit - 返すエンティティの最大数を表す int または long。

  • offset - スキップするエンティティの数を表す int または long。

  • kwargs - datastore_query.QueryOptions() で受け入れられるキーワード引数。

戻り値

# エンティティのリスト [Entity, …]

GetBatcher(config=None)ソース

このクエリを実行し、datastore_query.Batcher を返します。

これは、アプリケーション デベロッパーが使用するためのものではありません。代わりに Get() を使用してください。

パラメータ

config - このリクエストに使用するオプションの構成。

戻り値

# クエリ結果にアクセスできるイテレータ Iterator

GetCompiledCursor()ソース

このクエリの最後の実行からカーソルを取得します。

このカーソルのソースは、最後の呼び出しの内容によって異なります。
  • Run: 返されたイテレータから取り出された最後の結果の直後を指すカーソル。

  • Get: 返されたリストの最後の結果の直後を指すカーソル。

  • Count: カウントされた最後の結果の直後を指すカーソル。

戻り値

後続のクエリ リクエストで使用できる datastore_query.Cursor オブジェクト。

発生

AssertionError - クエリはまだ実行されていないか、コンパイルできません。

GetCompiledQuery()ソース

クエリの最後の実行の内部のみの pb 表現を返します。

使用しないでください。

発生

AssertionError - クエリがコンパイルされていないか、まだ実行されていません。

GetCursor()ソース

このクエリの最後の実行からカーソルを取得します。

このカーソルのソースは、最後の呼び出しの内容によって異なります。
  • Run: 返されたイテレータから取り出された最後の結果の直後を指すカーソル。

  • Get: 返されたリストの最後の結果の直後を指すカーソル。

  • Count: カウントされた最後の結果の直後を指すカーソル。

戻り値

後続のクエリ リクエストで使用できる datastore_query.Cursor オブジェクト。

発生

AssertionError - クエリはまだ実行されていないか、コンパイルできません。

GetDistinct()ソース

現在のインスタンスが異なる場合は True を返します。

戻り値

distinct フラグが設定されているかどうかを示すブール値。

GetFilterPredicate()ソース

現在のインスタンスの datastore_query.FilterPredicate を返します。

戻り値

現在のクエリにフィルタが設定されていない場合は datastore_query.FilterPredicate または None。

GetIndexList()ソース

このクエリの最後の実行からインデックス リストを取得します。

戻り値

このクエリの最後の実行で使用されたインデックスのリスト。

発生

AssertionError - クエリはまだ実行されていません。

GetOrder()ソース

現在のインスタンスの datastore_query.Order を取得します。

戻り値

現在のクエリに並べ替え順序が設定されていない場合は datastore_query.Order または None。

GetQuery()ソース

現在のインスタンスの datastore_query.Query を返します。

GetQueryOptions()ソース

現在のインスタンスの datastore_query.QueryOptions を返します。

Hint(hint)ソース

このクエリの実行方法に関するヒントを設定します。

クエリのヒントでは、クエリを実行する最適な方法についての情報が提供されます。現時点では、インデックス スキャンは 1 回のみ行うことができるため、スキャンする必要があるインデックスを示すために、クエリのヒントを使用する必要があります。

最初のフィルタに一致する結果が少ない場合は、FILTER_FIRST を使用します。この場合、このプロパティのインデックスに対してスキャンし、結果をメモリに読み込み、そこで残りのフィルタと並べ替え順序を適用するのが最も効率的です。

同様に、クエリの祖先の子孫が少ない場合は、ANCESTOR_FIRST を使用します。この場合、祖先の下にあるすべてのエンティティをスキャンし、最初にそれらをメモリに読み込むのが最も効率的です。

クエリに並べ替え順序があり、結果セットが大きい場合、または最初の少数の結果のみを取得する場合は、ORDER_FIRST を使用します。この場合、すべての結果をメモリに読み込まないでください。代わりに、並べ替えられた順序のこのプロパティのインデックスをスキャンする必要があります。

現在、ヒントは v3 データストアでは無視されます。

引数:

datastore.Query.[ORDER_FIRST, ANCESTOR_FIRST, FILTER_FIRST] のいずれか

戻り値

# 次のクエリ Query

INEQUALITY_OPERATORS = frozenset(['<=', '>=', '<', '>'])
IsKeysOnly()ソース

このクエリがキーのみの場合は True を返し、それ以外の場合は false を返します。

OPERATORS = {'>=': 4, '==': 5, '<=': 2, '=': 5, '<': 1, '>': 3}
ORDER_FIRST = 1
Order(*orderings)ソース

クエリ結果の並べ替え方法を指定します。

結果エンティティは、最初のプロパティ引数、2 番目のプロパティ引数というように並べ替えられます。次に例を示します。

> query = Query(‘Person’) > query.Order(‘bday’, (‘age’, Query.DESCENDING))

1 月 1 日から、誕生日の順序ですべてのユーザーを並べ替えます。同じ誕生日の人は、年齢が高い人から低い人の順序で並べ替えられます。

それぞれの並べ替えプロパティの方向を指定できます。省略された場合、デフォルトは昇順になります。

Order() は複数回呼び出すことができます。呼び出しごとに、並べ替え順序がリセットされます。

このクエリに不等式フィルタが存在する場合は、これが Order に渡される最初のプロパティである必要があります。不等式フィルタ プロパティの後に、任意の数の並べ替え順序を使用できます。不等式フィルタがなければ、異なる順序の任意の数のフィルタを指定することができます。

順序プロパティに複数の値を持つエンティティは、その最小値で並べ替えられます。

並べ替え順序は存在フィルタを暗黙的に示すことに注意してください。つまり、並べ替え順序プロパティのないエンティティは除外され、クエリ結果には含まれません。

並べ替え順序プロパティで、エンティティごとに異なる型がある場合、つまり、bob[‘id’] が int で、fred[‘id’] が文字列の場合、エンティティは最初にプロパティ型によってグループ化され、次に型内で並べ替えられます。異なる型でプロパティ値を比較する試みは行われません。

いずれかの引数の形式が間違っている場合、BadArgumentError が発生します。

パラメータ
  • 並べ替え順序で並べ替えの基準にするプロパティ。各引数は、(#) -

  • 文字列または(#) -

戻り値

# 次のクエリ Query

Run(**kwargs)ソース

このクエリを実行します。

フィルタ文字列が無効な場合、BadFilterError が発生します。フィルタ値が無効な場合、BadValueError が発生します。IN フィルタが指定され、別のプロパティで並べ替え順序が指定された場合、BadQueryError が発生します。

必要な結果数が事前にわかっている場合は、limit=# を使用します。こちらの方がより効率的です。

パラメータ

kwargs - datastore_query.QueryOptions() で受け入れられるキーワード引数。

戻り値

# クエリ結果にアクセスできるイテレータ Iterator

UPPERBOUND_INEQUALITY_OPERATORS = frozenset(['<=', '<'])
copy()ソース

copy メソッドはサポートされていません。

setdefault(filter, value)ソース

フィルタが存在する場合は、その値を返します。そうでない場合は value に設定します。

プロパティ名が空の文字列であるか、文字列でない場合、BadPropertyError が発生します。サポートされていない型の値である場合、BadValueError が発生します。

update(other)ソース

このクエリのフィルタを他のクエリのフィルタから更新します。

フィルタ文字列が無効な場合、BadFilterError が発生します。サポートされていない型の値である場合、BadValueError が発生します。

google.appengine.api.datastore.RunInReadOnlyTransaction(function, *args, **kwargs)ソース

読み取り専用データストア トランザクション内で関数を実行します。

読み取り専用トランザクションによって書き込みが実行されることはありませんが、より効率的に関数を実行できる可能性があります。

読み取り専用トランザクション内でユーザー指定関数を実行し、デフォルトの回数だけ再試行します。

パラメータ
  • function - 残りのすべての引数でトランザクション内で実行される関数。

  • *args - 関数の位置引数。

  • **kwargs - 関数のキーワード引数。

戻り値

関数の戻り値(存在する場合)

発生

トランザクションをコミットできなかった場合は、TransactionFailedError。

google.appengine.api.datastore.RunInReadOnlyTransactionOptions(options, function, *args, **kwargs)ソース

読み取り専用データストア トランザクション内で関数を実行します。

読み取り専用トランザクションによって書き込みが実行されることはありませんが、より効率的に関数を実行できる可能性があります。

RunInTransactionOptions と似ていますが、読み取り専用トランザクションがあります。

パラメータ
  • options - このトランザクションのオプション(再試行回数など)を指定する TransactionOptions。

  • function - 残りのすべての引数でトランザクション内で実行される関数。*args: 関数の位置引数。 **kwargs: 関数のキーワード引数。

戻り値

関数の戻り値(存在する場合)

発生

トランザクションをコミットできなかった場合は、TransactionFailedError。

google.appengine.api.datastore.RunInTransaction(function, *args, **kwargs)ソース

データストア トランザクション内で関数を実行します。

トランザクション内でユーザー指定関数を実行し、デフォルトの回数だけ再試行します。

引数:
function: 残りのすべての引数でトランザクション内で実行される

関数。

*args: 関数の位置引数。 **kwargs: 関数のキーワード引数。

戻り値

関数の戻り値(存在する場合)

発生

トランザクションをコミットできなかった場合は、TransactionFailedError。

google.appengine.api.datastore.RunInTransactionCustomRetries(retries, function, *args, **kwargs)ソース

データストア トランザクション内で関数を実行します。

トランザクション内でユーザー指定関数を実行し、指定した回数だけ再試行します。

引数:

retries: 再試行回数(最初の試行をカウントしない)。function: 残りのすべての引数でトランザクション内で実行される

関数。

*args: 関数の位置引数。 **kwargs: 関数のキーワード引数。

戻り値

関数の戻り値(存在する場合)

発生

トランザクションをコミットできなかった場合は、TransactionFailedError。

google.appengine.api.datastore.RunInTransactionOptions(options, function, *args, **kwargs)ソース

データストア トランザクション内で関数を実行します。

さまざまな機能を備えた ACID データストア トランザクション内でユーザー指定関数を実行します。関数の Put、Get、Delete 呼び出しはすべてトランザクション内で行われます。これらの呼び出しに関与するすべてのエンティティは、同じエンティティ グループに属している必要があります。同じエンティティ グループに属する祖先を指定する限り、クエリはサポートされます。

末尾の引数は、位置引数として関数に渡されます。関数が値を返す場合、その値は RunInTransaction によって返されます。そうでない場合は、None が返されます。

この関数により、例外が発生し、トランザクションがコミットされずにロールバックされる場合があります。この場合、トランザクションがロールバックされて、RunInTransaction の呼び出し元まで例外が再発生します。

意図的にロールバックする必要があるが、発生させる適切な例外がない場合は、datastore_errors.Rollback のインスタンスを発生させることができます。この場合、ロールバックが発生しますが、呼び出し元までこのインスタンスが再発生することはありません。

この関数は複数回実行される可能性があるため、べき等である必要があります。この関数では、副作用を避ける必要があり、複数回発生すると安全でない副作用を排除する必要があります。これには引数の変更が含まれます。引数は関数の呼び出し後に保持されるためです。ただし、これには Put、Get、Delete の呼び出しは含まれません。

使用例:

> def decrement(key, amount=1): > counter = datastore.Get(key) > counter[‘count’] -= amount > if counter[‘count’] < 0: # カウンタを負の値にしないでください > raise datastore_errors.Rollback() > datastore.Put(counter) > > counter = datastore.Query(‘Counter’, {‘name’: ‘foo’}) > datastore.RunInTransaction(decrement, counter.key(), amount=5)

トランザクションは従来の ACID 特性を満たします。これらは次のとおりです。

  • 原子性。すべてのトランザクションのオペレーションが実行されるか、またはいずれも実行されません。

  • 整合性。データストアの状態は、コミットされた場合も、ロールバックされた場合も、

トランザクションの前後で一貫しています。「すべてのエンティティに主キーがある」などの不変条件が保持されます。

  • 分離性。トランザクションは、データストアのスナップショットで動作します。その他の

データストア オペレーションでは、トランザクションの中間的な影響は認識されません。これらのオペレーションでは、コミット後の影響のみが認識されます。

  • 耐久性。commit すると、すべての書き込みがデータストアに保持されます。

ネストされたトランザクションはサポートされていません。

パラメータ
  • options - このトランザクションのオプション(再試行回数など)を指定する TransactionOptions。

  • function - 残りのすべての引数でトランザクション内で実行される関数。*args: 関数の位置引数。**kwargs: 関数のキーワード引数。

戻り値

関数の戻り値(存在する場合)

発生

トランザクションをコミットできなかった場合は、TransactionFailedError。

google.appengine.api.datastore.Transactional(_func=None, **kwargs)ソース

関数がトランザクション内で実行されるようにするデコレータ。

デフォルトは datastore_rpc.TransactionOptions.ALLOWED への伝播で、既存のトランザクションが新しいトランザクションを作成する代わりに使用されることを意味します。

警告: トランザクション内でデータストアから読み取った場合、同じトランザクションで行われた変更は表示されません。デコレートされている関数が、呼び出しスコープで行われたすべての変更を認識することに依存している場合は、propagation=datastore_rpc.TransactionOptions.NESTED を設定します。

パラメータ
  • _func - 使用しないでください。

  • **kwargs - TransactionOptions 構成オプション。

戻り値

必要に応じて新しいトランザクションを作成する、指定された関数のラッパー。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Python の App Engine スタンダード環境