Datastore のデータ オブジェクトはエンティティと呼ばれ、個々のエンティティはクエリの目的で特定の種類に分類されます。たとえば、人事アプリケーションを作成する場合、各従業員を Employee という種類のエンティティで表すことができます。エンティティ データ値は、プロパティの形で表されます。エンティティの詳細については、エンティティ、プロパティ、キーを参照してください。
エンティティの作成とプロパティの設定
Go で新しいエンティティを作成するには、Go 構造体のインスタンスを作成し、そのフィールドに値を設定したうえで、datastore.Put を呼び出して Datastore に保存します。Datastore にはエクスポートされたフィールド(大文字で始まるもの)のみが保存されます。エンティティのキー名を指定するには、空でない stringID 引数を datastore.NewKey に渡します。
次の例では、種類が Employee のエンティティを作成し、そのプロパティ値を設定して、Datastore に保存します。
Employee 型は、データモデルに FirstName、LastName、HireDate、AttendedHRTraining の 4 つのフィールドを宣言します。
空のキー名を指定するか、datastore.NewIncompleteKey を使用すると、Datastore によって数値 ID がエンティティのキーとして自動的に生成されます。
エンティティの取得
指定したキーで識別されるエンティティを取得するには、*datastore.Key を引数として datastore.Get 関数に渡します。datastore.NewKey を生成するには、*datastore.Key 関数を使用します。
datastore.Get は適切な Go 構造体のインスタンスを設定します。
エンティティの更新
既存のエンティティを更新するには、構造体の属性を変更してから datastore.Put を呼び出します。このデータで既存のエンティティが上書きされます。datastore.Put を呼び出すたびに、オブジェクト全体が Datastore に送信されます。
エンティティの削除
エンティティを削除するには、エンティティのキーを指定して、datastore.Delete 関数を実行します。
エンティティの一括削除
多数のエンティティを削除する必要がある場合は、Dataflow を使用してエンティティを一括削除することをおすすめします。
バッチ オペレーションの使用
1 回の Datastore 呼び出しで複数のエンティティを処理する場合は、次のバッチ オペレーションを使用できます。
バッチ呼び出しの例を次に示します。
一括オペレーションを実行してもコストは変わりません。キーが存在するかどうかにかかわらず、バッチ オペレーションに含まれるすべてのキーについて課金されます。オペレーションに含まれるエンティティのサイズは、コストに影響しません。