Method: projects.databases.documents.partitionQuery

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

HTTP请求

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

URL 使用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 。第二次调用docs.partitionQuery将返回最多2个分区,以完成partitionCount中指定的总共10个分区。

联合字段query_type 。要分区的查询。 query_type只能是以下之一:
structuredQuery

object ( StructuredQuery )

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

联合字段consistency_selector 。此请求的一致性模式。如果不设置,默认为强一致性。 consistency_selector只能是以下之一:
readTime

string ( Timestamp format)

按给定时间的原样读取文档。

这必须是过去一小时内的微秒精度时间戳,或者如果启用了时间点恢复,则还可以是过去 7 天内的整分钟时间戳。

RFC3339 UTC“Zulu”格式的时间戳,具有纳秒分辨率和最多九个小数位。示例: "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 的查询结果相同的顺序进行排序。

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

  • 查询,结束于A
  • 查询,起始于 A,结束于 B
  • 查询,从 B 开始

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

nextPageToken

string

页面令牌,可用于请求附加结果集,最多可达docs.partitionQuery 请求中的partitionCount指定的数量。如果为空,则没有更多结果。

授权范围

需要以下 OAuth 范围之一:

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

有关详细信息,请参阅身份验证概述