Firestore は、自動スケーリングと高性能を実現し、アプリケーション開発を簡素化するように構築された NoSQL ドキュメント データベースです。これは Datastore の最新バージョンで、Datastore のいくつかの点が改善されています。
App Engine アプリで主に使用されるデータベースの場合は、Firestore を Datastore モードで使用することをおすすめします。Firestore モードの詳細については、ネイティブ モードと Datastore モードからの選択をご覧ください。
このドキュメントでは、Google Cloud Client Library を使用して Datastore モードのデータベースにデータを格納する方法、または Datastore モードのデータベースからデータを取得する方法について説明します。
前提条件と設定
App Engine の Go 用「Hello, World!」の説明に従って環境とプロジェクトを設定し、App Engine での Go アプリの構造を理解してください。このドキュメントで説明しているサンプルアプリを実行する際に必要となるため、プロジェクト ID を書き留めておきます。
リポジトリのクローン作成
サンプルをダウンロード(クローンを作成)します。
go get -u -d -v github.com/GoogleCloudPlatform/golang-samples/datastore
cd $GOPATH/src/github.com/GoogleCloudPlatform/golang-samples/appengine_flexible/datastore
プロジェクト構成の編集と依存関係の設定
app.yaml
で、プロジェクト用に GCLOUD_DATASET_ID
を設定します。この値はプロジェクト ID です。
アプリケーション コード
このサンプル アプリケーションは訪問者の IP のログ記録、取得、表示を行います。ログエントリはタイプ visit
の単純な 2 フィールド クラスであり、Datastore クライアントの put コマンドを使用して Datastore mode に保存されることがわかります。さらに、Datastore クライアントの NewQuery および GetAll コマンドを使用して、訪問者のアクセスの最新 10 件が降順で取得されます。
index.yaml
ファイルの使用
このサンプルアプリは簡単なクエリを実行しています。複雑な Datastore クエリには 1 つ以上のインデックスが必要です。インデックスは、アプリとともにアップロードする index.yaml
ファイルで指定する必要があります。
ローカルテスト
アプリケーションを開発してローカルでテストする必要がある場合は、Datastore モードエミュレータを使用できます。
詳細情報
最適化やコンセプトなどのデータストア モードの詳細は、Datastore モードの Cloud Firestore に関するドキュメントをご覧ください。