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 呼び出しで複数のエンティティを処理する場合は、次のバッチ オペレーションを使用できます。
バッチ呼び出しの例を次に示します。
一括オペレーションを実行してもコストは変わりません。キーが存在するかどうかにかかわらず、バッチ オペレーションに含まれるすべてのキーについて課金されます。オペレーションに含まれるエンティティのサイズは、コストに影響しません。