Google Cloud Datastore (Firestore の Datastore モード)
昔は Google Cloud Datastore と Firestore は全く別のサービスだったが、今は統合されている。
これまでの Firestore は「Firestore の Native モード」
Google Cloud Datastore は「Firestore の Datastore モード」と呼ばれる
ここでは Firestore の Datastore モードについて説明する
以下、Datastore と呼ぶことにする
Datastore のドキュメント
https://cloud.google.com/datastore/docs?hl=ja
Datastore の基本
https://cloud.google.com/datastore/docs/concepts/entities?hl=ja
Datastore では、データ オブジェクトをエンティティといいます。
同じ種類のエンティティが同じプロパティを持つとは限りません。また、エンティティの特定のプロパティの値がすべて同じデータ型である必要はありません。(ただし、基本的には同じプロパティを持つことが多いはずです)
エンティティのID
Datastore モードのデータベース内の各エンティティはキーによって一意に識別されます。キーは次の組み合わせです。
namespace
エンティティの種類 (kind)
エンティティのID
ID は次のどちらかです
キー文字列
整数の数値 ID
祖先パス (オプショナル)
Datastore のベストプラクティスのページがあり、その中にキーの決め方についても書いてあります
https://cloud.google.com/datastore/docs/best-practices?hl=ja#keys
祖先パス
Datastore のエンティティは、階層構造を形成している。エンティティを作成する時に、他のエンティティを親に指定することができる。
ちなみに、親のエンティティが実際には存在していないとしても親に指定することができる。
インデックス
https://cloud.google.com/datastore/docs/best-practices?hl=ja#indexes
クエリの実行
https://cloud.google.com/datastore/docs/store-query-data?hl=ja
GQL (Google Query Language) というので Datastore にクエリを実行できる。
インデックス
組み込みインデックス
いわゆる単体のインデックス
複合インデックス
index.yaml に定義する