Method: projects.databases.documents.partitionQuery

Phân vùng truy vấn bằng cách trả về con trỏ phân vùng có thể dùng để chạy truy vấn song song. Con trỏ phân vùng được trả về là các điểm phân chia có thể được document.runQuery sử dụng làm điểm bắt đầu/kết thúc cho kết quả truy vấn.

yêu cầu HTTP

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

URL sử dụng cú pháp Chuyển mã gRPC.

Tham số đường dẫn

Thông số
parent

string

Bắt buộc. Tên tài nguyên mẹ. Ở định dạng: projects/{projectId}/databases/{databaseId}/documents. Tên tài nguyên tài liệu không được hỗ trợ; chỉ có thể chỉ định tên tài nguyên cơ sở dữ liệu.

Nội dung yêu cầu

Nội dung yêu cầu chứa dữ liệu có cấu trúc sau:

Biểu diễn dưới dạng 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.
}
Trường
partitionCount

string (int64 format)

Số điểm phân vùng tối đa mong muốn. Các phân vùng có thể được trả về trên nhiều trang kết quả. Số phải là số dương. Số lượng phân vùng thực tế được trả về có thể ít hơn.

Ví dụ: giá trị này có thể được đặt ít hơn 1 so với số lượng truy vấn song song sẽ chạy, hoặc khi chạy một công việc quy trình dữ liệu, ít hơn một so với số lượng worker hoặc thực thể điện toán có sẵn.

pageToken

string

Giá trị nextPageToken được trả về từ lệnh gọi trước đó đến documents.partitionQuery có thể dùng để nhận tập hợp kết quả bổ sung. Không có sự đảm bảo về thứ tự giữa các tập hợp kết quả. Do đó, việc sử dụng nhiều tập hợp kết quả sẽ đòi hỏi phải hợp nhất các tập hợp kết quả khác nhau.

Ví dụ: hai lệnh gọi tiếp theo dùng một pageToken có thể trả về:

  • con trỏ B, con trỏ M, con trỏ Q
  • con trỏ A, con trỏ U, con trỏ W

Để có được tập hợp kết quả hoàn chỉnh theo thứ tự tương ứng với kết quả của truy vấn được cung cấp cho documents.partitionQuery, các tập hợp kết quả phải được hợp nhất: con trỏ A, con trỏ B, con trỏ M, con trỏ Q, con trỏ U, con trỏ W

pageSize

integer

Số lượng phân vùng tối đa cần trả về trong lệnh gọi này, tuỳ thuộc vào partitionCount.

Ví dụ: nếu partitionCount = 10 và pageSize = 8, lệnh gọi đầu tiên đến documents.partitionQuery sẽ trả về tối đa 8 phân vùng và nextPageToken nếu tồn tại nhiều kết quả hơn. Lệnh gọi thứ hai đến documents.partitionQuery sẽ trả về tối đa 2 phân vùng để hoàn thành tổng cộng 10 phân vùng được chỉ định trong partitionCount.

Trường kết hợp query_type. Truy vấn để phân vùng. query_type chỉ có thể là một trong những trạng thái sau đây:
structuredQuery

object (StructuredQuery)

Truy vấn có cấu trúc. Truy vấn phải chỉ định tập hợp gồm tất cả các thành phần con và được sắp xếp theo tên tăng dần. Các bộ lọc, thứ tự by, giới hạn, độ lệch và con trỏ bắt đầu/kết thúc khác không được hỗ trợ.

Trường kết hợp consistency_selector. Chế độ nhất quán cho yêu cầu này. Nếu bạn không đặt chính sách này, hệ thống sẽ đặt mặc định là tính nhất quán cao. consistency_selector chỉ có thể là một trong những trạng thái sau đây:
readTime

string (Timestamp format)

Đọc tài liệu như tại thời điểm đã cho.

Đây phải là một dấu thời gian có độ chính xác là micrô giây trong vòng 1 giờ qua, hoặc nếu tính năng Khôi phục tại một thời điểm đang bật, thì đây cũng có thể là dấu thời gian cả phút trong vòng 7 ngày qua.

Dấu thời gian theo múi giờ "Zulu" RFC3339 (giờ UTC) với độ phân giải nano giây và lên đến 9 chữ số phân số. Ví dụ: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z".

Nội dung phản hồi

Phản hồi cho Firestore.PartitionQuery.

Nếu thành công, nội dung phản hồi sẽ chứa dữ liệu có cấu trúc sau:

Biểu diễn dưới dạng JSON
{
  "partitions": [
    {
      object (Cursor)
    }
  ],
  "nextPageToken": string
}
Trường
partitions[]

object (Cursor)

Kết quả phân vùng. Mỗi phân vùng là một điểm phân tách có thể được documents.runQuery sử dụng làm điểm bắt đầu hoặc điểm kết thúc cho kết quả truy vấn. Các yêu cầu document.runQuery phải được thực hiện bằng cùng một truy vấn được cung cấp cho yêu cầu documents.partitionQuery này. Các con trỏ phân vùng sẽ được sắp xếp theo cùng thứ tự như kết quả của truy vấn được cung cấp cho documents.partitionQuery.

Ví dụ: nếu yêu cầu documents.partitionQuery trả về con trỏ phân vùng A và B, thì việc chạy ba truy vấn sau sẽ trả về toàn bộ tập hợp kết quả của truy vấn ban đầu:

  • truy vấn, endAt A
  • truy vấn, startAt A, endAt B
  • truy vấn, startAt B

Kết quả trống có thể cho biết truy vấn có quá ít kết quả để phân vùng hoặc truy vấn chưa được hỗ trợ để phân vùng.

nextPageToken

string

Mã thông báo trang có thể dùng để yêu cầu một nhóm kết quả bổ sung, lên tới số lượng do partitionCount chỉ định trong yêu cầu documents.partitionQuery. Nếu trống thì không có kết quả nào khác.

Phạm vi uỷ quyền

Yêu cầu một trong các phạm vi OAuth sau:

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

Để biết thêm thông tin, hãy xem bài viết Tổng quan về việc xác thực.