Method: projects.databases.documents.runQuery

クエリを実行します。

HTTP リクエスト

POST https://firestore.googleapis.com/v1/{parent=projects/*/databases/*/documents}:runQuery

この URL は gRPC Transcoding 構文を使用します。

パスパラメータ

パラメータ
parent

string

必須。親リソース名。形式は projects/{projectId}/databases/{databaseId}/documents または projects/{projectId}/databases/{databaseId}/documents/{document_path} です。たとえば、projects/my-project/databases/my-database/documentsprojects/my-project/databases/my-database/documents/chatrooms/my-chatroom などです。

リクエスト本文

リクエストの本文には、次の構造のデータが含まれます。

JSON 表現
{
  "explainOptions": {
    object (ExplainOptions)
  },

  // Union field query_type can be only one of the following:
  "structuredQuery": {
    object (StructuredQuery)
  }
  // End of list of possible types for union field query_type.

  // Union field consistency_selector can be only one of the following:
  "transaction": string,
  "newTransaction": {
    object (TransactionOptions)
  },
  "readTime": string
  // End of list of possible types for union field consistency_selector.
}
フィールド
explainOptions

object (ExplainOptions)

省略可。クエリのオプションについて説明します。設定すると、追加のクエリ統計情報が返されます。そうでない場合は、クエリ結果のみが返されます。

共用体フィールド query_type。実行するクエリ。query_type は次のいずれかになります。
structuredQuery

object (StructuredQuery)

構造化クエリ。

共用体フィールド consistency_selector。このトランザクションの整合性モード。設定しない場合、デフォルトで強整合性が使用されます。consistency_selector は次のいずれかになります。
transaction

string (bytes format)

すでにアクティブなトランザクション内でクエリを実行します。

この値は、クエリを実行する不透明トランザクション ID です。

Base64 でエンコードされた文字列。

newTransaction

object (TransactionOptions)

新しいトランザクションを開始し、ドキュメントを読み取ります。デフォルトは読み取り専用トランザクションです。新しいトランザクション ID は、ストリーム内の最初のレスポンスとして返されます。

readTime

string (Timestamp format)

指定された時点のドキュメントを読み取ります。

これは、過去 1 時間以内のマイクロ秒の精度のタイムスタンプにする必要があります。ポイントインタイム リカバリが有効になっている場合は、過去 7 日間以内の 1 分単位のタイムスタンプにすることもできます。

RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

レスポンスの本文

Firestore.RunQuery に対するレスポンス。

成功すると、レスポンスの本文に次の構造のデータが含まれます。

JSON 表現
{
  "transaction": string,
  "document": {
    object (Document)
  },
  "readTime": string,
  "skippedResults": integer,
  "explainMetrics": {
    object (ExplainMetrics)
  },

  // Union field continuation_selector can be only one of the following:
  "done": boolean
  // End of list of possible types for union field continuation_selector.
}
フィールド
transaction

string (bytes format)

このリクエストの一部として開始されたトランザクション。リクエストで RunQueryRequest.new_transaction が設定されている場合のみ、最初のレスポンスでのみ設定できます。設定すると、このレスポンスに他のフィールドは設定されません。

Base64 でエンコードされた文字列。

document

object (Document)

クエリ結果。部分的な進行状況を報告する場合は設定されません。

readTime

string (Timestamp format)

ドキュメントが読み取られた時刻。これは単調に増加する可能性があります。この場合、結果ストリーム内の以前のドキュメントは、readTime とこのドキュメントの間で変更されていないことが保証されます。

クエリが結果を返さない場合、readTimedocument のないレスポンスが送信されます。これは、クエリが実行された時刻を表します。

RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

skippedResults

integer

最後のレスポンスと現在のレスポンスとの間のオフセットが原因でスキップされた結果の数。

explainMetrics

object (ExplainMetrics)

クエリ説明の指標。これは、RunQueryRequest.explain_options が指定された場合にのみ使用され、ストリーム内の最後のレスポンスで 1 回だけ送信されます。

共用体フィールド continuation_selector。クエリの継続モード。存在する場合は、現在のクエリ レスポンス ストリームが終了したことを示します。これは、document の有無にかかわらず設定できますが、設定するとそれ以上結果は返されません。continuation_selector は次のいずれかになります。
done

boolean

存在する場合、Firestore はリクエストを完全に終了し、ドキュメントは返されません。

承認スコープ

次の OAuth スコープのいずれかが必要です。

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

詳細については、認証の概要をご覧ください。