Method: projects.databases.documents.runQuery

Chạy một truy vấn.

yêu cầu HTTP

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

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 hoặc projects/{projectId}/databases/{databaseId}/documents/{document_path}. Ví dụ: projects/my-project/databases/my-database/documents hoặc projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

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
{
  "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.
}
Trường
explainOptions

object (ExplainOptions)

Không bắt buộc. Giải thích các tuỳ chọn cho truy vấn. Nếu được đặt, số liệu thống kê truy vấn bổ sung sẽ được trả về. Nếu không, hệ thống sẽ chỉ trả về kết quả truy vấn.

Trường kết hợp query_type. Truy vấn cần chạy. 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.

Trường kết hợp consistency_selector. Chế độ nhất quán cho giao dịch 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:
transaction

string (bytes format)

Chạy truy vấn trong một giao dịch đang hoạt động.

Giá trị ở đây là mã giao dịch mờ để thực thi truy vấn.

Chuỗi được mã hoá base64.

newTransaction

object (TransactionOptions)

Bắt đầu một giao dịch mới và đọc tài liệu. Mặc định là giao dịch chỉ có thể đọc. Mã giao dịch mới sẽ được trả về dưới dạng phản hồi đầu tiên trong luồng.

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.RunQuery.

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
{
  "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.
}
Trường
transaction

string (bytes format)

Giao dịch đã bắt đầu theo yêu cầu này. Chỉ có thể thiết lập trong phản hồi đầu tiên và chỉ khi RunQueryRequest.new_transaction được đặt trong yêu cầu. Nếu được đặt, sẽ không có trường nào khác được đặt trong phản hồi này.

Chuỗi được mã hoá base64.

document

object (Document)

Kết quả truy vấn, không được đặt khi báo cáo tiến trình một phần.

readTime

string (Timestamp format)

Thời gian tài liệu được đọc. Con số này có thể tăng lên một cách đơn điệu; trong trường hợp này, các tài liệu trước đó trong luồng kết quả được đảm bảo không thay đổi giữa readTime và tài liệu này.

Nếu truy vấn không trả về kết quả nào, thì phản hồi có readTime và không có document sẽ được gửi, đồng thời thể hiện thời gian chạy truy vấn.

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".

skippedResults

integer

Số lượng kết quả đã bị bỏ qua do chênh lệch giữa phản hồi cuối cùng và phản hồi hiện tại.

explainMetrics

object (ExplainMetrics)

Truy vấn giải thích về các chỉ số. Điều này chỉ có khi RunQueryRequest.explain_options được cung cấp và chỉ được gửi một lần cùng với phản hồi cuối cùng trong luồng.

Trường kết hợp continuation_selector. Chế độ tiếp tục cho truy vấn. Nếu có, thì trạng thái này cho biết luồng phản hồi truy vấn hiện tại đã kết thúc. Bạn có thể đặt thuộc tính này có hoặc không có document, nhưng khi đặt giá trị này, hệ thống sẽ không trả về kết quả nào khác. continuation_selector chỉ có thể là một trong những trạng thái sau đây:
done

boolean

Nếu có, Firestore đã hoàn tất yêu cầu và sẽ không trả lại tài liệu nào nữa.

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.