Method: projects.databases.documents.runQuery

쿼리를 실행합니다.

HTTP 요청

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

URL은 gRPC 트랜스코딩 구문을 사용합니다.

경로 매개변수

매개변수
parent

string

필수 항목입니다. 상위 리소스 이름입니다. 형식은 projects/{projectId}/databases/{databaseId}/documents 또는 projects/{projectId}/databases/{databaseId}/documents/{document_path}입니다. 예를 들면 projects/my-project/databases/my-database/documents 또는 projects/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. 이 트랜잭션의 일관성 모드입니다. 설정하지 않으면 strong consistency가 기본값입니다. consistency_selector은 다음 중 하나여야 합니다.
transaction

string (bytes format)

이미 활성 상태인 트랜잭션 내에서 쿼리를 실행합니다.

여기서 값은 쿼리를 실행할 불투명한 트랜잭션 ID입니다.

base64 인코딩 문자열입니다.

newTransaction

object (TransactionOptions)

새 트랜잭션을 시작하고 문서를 읽습니다. 기본값은 읽기 전용 트랜잭션입니다. 새 트랜잭션 ID가 스트림의 첫 번째 응답으로 반환됩니다.

readTime

string (Timestamp format)

특정 시점의 문서를 읽습니다.

지난 1시간 이내의 마이크로초 정밀도 타임스탬프여야 합니다. 또는 PITR(point-in-time recovery)이 사용 설정된 경우 지난 7일 이내의 분 전체 타임스탬프가 될 수도 있습니다.

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와 이 문서 간에 변경되지 않았다고 보장됩니다.

쿼리가 결과를 반환하지 않으면 readTime가 있고 document가 없는 응답이 전송되며 이는 쿼리가 실행된 시간을 나타냅니다.

RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"입니다.

skippedResults

integer

마지막 응답과 현재 응답 사이의 오프셋으로 인해 건너뛴 결과 수입니다.

explainMetrics

object (ExplainMetrics)

쿼리 설명 측정항목 RunQueryRequest.explain_options가 제공된 경우에만 표시되고 스트림의 마지막 응답과 함께 한 번만 전송됩니다.

통합 필드 continuation_selector. 쿼리의 연속 모드입니다. 있는 경우 현재 쿼리 응답 스트림이 완료되었음을 나타냅니다. document 유무에 관계없이 설정할 수 있지만 설정하면 더 이상 결과가 반환되지 않습니다. continuation_selector은 다음 중 하나여야 합니다.
done

boolean

있는 경우 Firestore에서 요청을 완전히 완료한 것이므로 더 이상 문서가 반환되지 않습니다.

승인 범위

다음 OAuth 범위 중 하나가 필요합니다.

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

자세한 내용은 인증 개요를 참조하세요.