Method: projects.databases.documents.partitionQuery

通过返回可用于并行运行查询的分区游标来对查询进行分区。返回的分区游标是拆分点,document.runQuery 可将其用作查询结果的起点/终点。

HTTP 请求

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

网址采用 gRPC 转码语法。

路径参数

参数
parent

string

必需。父级资源名称。格式为 projects/{projectId}/databases/{databaseId}/documents。文档资源名称不受支持;只能指定数据库资源名称。

请求正文

请求正文中包含结构如下的数据:

JSON 表示法
{
  "partitionCount": string,
  "pageToken": string,
  "pageSize": integer,

  // 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:
  "readTime": string
  // End of list of possible types for union field consistency_selector.
}
字段
partitionCount

string (int64 format)

所需的分区点数量上限。分区可能会跨多页结果返回。该数字必须为正数。返回的实际分区数可能会少一些。

例如,此值可以设置为比要运行的并行查询数量少一个,或者在运行数据流水线作业时,设置为比可用的工作器或计算实例数量少一个。

pageToken

string

之前调用 documents.PartitionQuery 返回的 nextPageToken 值,该值可用于获取一组额外的结果。结果集之间没有排序保证。因此,使用多组结果需要合并不同的结果集。

例如,使用 pageToken 的两次后续调用可能会返回:

  • 光标 B、光标 M、光标 Q
  • 光标 A、光标 U、光标 W

要获取按照提供给 documents.PartitionQuery 的查询结果排序的完整结果集,应合并结果集:游标 A、游标 B、游标 M、游标 Q、游标 U、游标 W

pageSize

integer

此调用中要返回的最大分区数,受 partitionCount 约束。

例如,如果 partitionCount = 10 且 pageSize = 8,则第一次调用 documents.PartitionQuery 将最多返回 8 个分区;如果存在更多结果,则返回 nextPageToken。第二次调用 documents.PartitionQuery 最多返回 2 个分区,完成 partitionCount 中指定的总共 10 个分区。

联合字段 query_type。要分区的查询。query_type 只能是下列其中一项:
structuredQuery

object (StructuredQuery)

结构化查询。查询必须指定包含所有后代的集合,并按名称升序排序。不支持其他过滤条件、排序依据、限值、偏移量和开始/结束游标。

联合字段 consistency_selector。此请求的一致性模式。如果未设置,则默认为强一致性。consistency_selector 只能是下列其中一项:
readTime

string (Timestamp format)

以给定时间原样读取文档。

该时间戳必须是过去 1 小时内精确到微秒的时间戳,或者如果启用了时间点恢复,也可以是过去 7 天内整分钟的时间戳。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

响应正文

Firestore.PartitionQuery 的响应。

如果成功,响应正文将包含结构如下的数据:

JSON 表示法
{
  "partitions": [
    {
      object (Cursor)
    }
  ],
  "nextPageToken": string
}
字段
partitions[]

object (Cursor)

分区结果。每个分区都是一个拆分点,documents.runQuery 可以使用它作为查询结果的起点或终点。发出 documents.runQuery 请求时,必须使用提供给此 documents.PartitionQuery 请求的相同查询。分区游标将按照与提供给 documents.PartitionQuery 的查询结果相同的排序进行排序。

例如,如果 documents.PartitionQuery 请求返回分区游标 A 和 B,则运行以下三个查询将返回原始查询的整个结果集:

  • 查询,endAt A
  • 查询,startAt A,endAt B
  • 查询,startAt B

空结果可能表示该查询包含的结果太少,无法进行分区,或者该查询尚不支持分区。

nextPageToken

string

可用于请求一组额外结果的页面令牌,最多可使用 documents.PartitionQuery 请求中的 partitionCount 指定的数量。如果留空,则表示没有更多结果。

授权范围

需要以下 OAuth 范围之一:

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

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