Method: projects.databases.documents.runQuery

运行查询。

HTTP 请求

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

网址采用 gRPC 转码语法。

路径参数

参数
parent

string

必需。父级资源名称。格式为 projects/{projectId}/databases/{databaseId}/documentsprojects/{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 天内整分钟的时间戳。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"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,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"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

如需了解详情,请参阅身份验证概览