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

Tham số
parent

string

Bắt buộc. Tên tài nguyên gốc. Theo đị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, thống kê truy vấn bổ sung sẽ được trả về. Nếu không, chỉ có kết quả truy vấn được trả về.

Trường 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:
structuredQuery

object (StructuredQuery)

Cụm từ tìm kiếm có cấu trúc.

Trường 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, thì chế độ mặc định sẽ là mức độ nhất quán cao. consistency_selector chỉ có thể là một trong những trạng thái sau:
transaction

string (bytes format)

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

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

Một 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. 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 ở một thời điểm nhất định.

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

Dấu thời gian ở định dạng "Zulu" RFC3339 UTC, với độ phân giải nano giây và tối đa 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

Câu trả lời cho Firestore.RunQuery.

Nếu thành công, phần 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 được bắt đầu theo yêu cầu này. Chỉ có thể đặt 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, hệ thống sẽ không đặt các trường khác trong phản hồi này.

Một 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 điểm đọc tài liệu. Điều này có thể tăng đơ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 có 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 nào sẽ được gửi và số liệu này thể hiện thời điểm chạy truy vấn.

Dấu thời gian ở định dạng "Zulu" RFC3339 UTC, với độ phân giải nano giây và tối đa 9 chữ số phân số. Ví dụ: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z".

skippedResults

integer

Số kết quả đã bị bỏ qua do chênh lệch giữa phản hồi gần đây nhất và phản hồi hiện tại.

explainMetrics

object (ExplainMetrics)

Truy vấn giải thích các chỉ số. Mã này chỉ xuất hiện 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 hợp continuation_selector. Chế độ tiếp tục cho truy vấn. Nếu có, thẻ 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 khi có hoặc không có document, nhưng khi đặt thì sẽ không có kết quả nào khác được trả về. continuation_selector chỉ có thể là một trong những trạng thái sau:
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 đây:

  • 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ề hoạt động xác thực.