Method: projects.databases.documents.partitionQuery

แบ่งพาร์ติชันการค้นหาโดยแสดงผลเคอร์เซอร์พาร์ติชันที่จะใช้เพื่อเรียกใช้การค้นหาพร้อมกันได้ เคอร์เซอร์พาร์ติชันที่แสดงผลคือจุดแบ่งที่ Docs.runQuery ใช้เป็นจุดเริ่มต้น/จุดสิ้นสุดสำหรับผลการค้นหาได้

คำขอ HTTP

POST https://firestore.googleapis.com/v1/{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)

จำนวนจุดพาร์ติชันสูงสุดที่ต้องการ พาร์ติชันอาจแสดงในหน้าผลลัพธ์หลายหน้า ตัวเลขต้องเป็นค่าบวก จำนวนพาร์ติชันจริงที่แสดงผลอาจน้อยกว่า

เช่น อาจตั้งค่าเป็น 1 น้อยกว่าจำนวนการค้นหาแบบขนานที่จะเรียกใช้ หรือในการเรียกใช้งานไปป์ไลน์ข้อมูล น้อยกว่าจำนวนผู้ปฏิบัติงานหรืออินสแตนซ์การประมวลผลที่พร้อมใช้งาน 1 รายการ

pageToken

string

ค่า nextPageToken ที่แสดงผลจากการเรียกไปยัง document.partitionQuery ก่อนหน้านี้ ซึ่งอาจนำไปใช้เพื่อรับชุดผลลัพธ์เพิ่มเติม ไม่มีการรับประกันการสั่งซื้อระหว่างชุดผลลัพธ์ ดังนั้น การใช้ผลลัพธ์หลายชุดจึงต้องรวมชุดผลลัพธ์ที่แตกต่างกันเข้าด้วยกัน

ตัวอย่างเช่น การเรียกครั้งต่อๆ มาโดยใช้ pageToken อาจแสดงผลดังนี้

  • เคอร์เซอร์ B, เคอร์เซอร์ M, เคอร์เซอร์ Q
  • เคอร์เซอร์ A, เคอร์เซอร์ U, เคอร์เซอร์ W

หากต้องการได้ชุดผลลัพธ์ที่สมบูรณ์ซึ่งเรียงลำดับตามผลลัพธ์ของการค้นหาที่ให้ไว้กับ document.partitionQuery ชุดผลลัพธ์ควรรวมเข้าด้วยกัน: เคอร์เซอร์ A, เคอร์เซอร์ B, เคอร์เซอร์ M, เคอร์เซอร์ Q, เคอร์เซอร์ U, เคอร์เซอร์ W

pageSize

integer

จำนวนพาร์ติชันสูงสุดที่จะแสดงในการเรียกนี้ ขึ้นอยู่กับ partitionCount

ตัวอย่างเช่น ถ้า partitionCount = 10 และ pageSize = 8 การเรียก document.partitionQuery ครั้งแรกจะแสดงพาร์ติชันสูงสุด 8 พาร์ติชัน และ nextPageToken หากมีผลลัพธ์มากกว่า การเรียกใช้ Docs.partitionQuery ครั้งที่ 2 จะส่งกลับพาร์ติชันสูงสุด 2 พาร์ติชัน ซึ่งทำให้ได้ผลรวมทั้งหมด 10 รายการที่ระบุใน partitionCount

ช่องการรวม query_type การค้นหาที่จะแบ่งพาร์ติชัน query_type ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้
structuredQuery

object (StructuredQuery)

การค้นหาแบบมีโครงสร้าง การค้นหาต้องระบุคอลเล็กชันที่มีองค์ประกอบสืบทอดทั้งหมด และเรียงลำดับตามชื่อจากน้อยไปหามาก ไม่รองรับตัวกรองอื่นๆ การเรียงลำดับตาม ขีดจำกัด ออฟเซ็ต และเคอร์เซอร์เริ่มต้น/สิ้นสุด

ช่องการรวม consistency_selector โหมดความสอดคล้องสำหรับคำขอนี้ หากไม่ได้ตั้งค่า ระบบจะใช้ความสอดคล้องที่อัปเดตเป็นค่าเริ่มต้น consistency_selector ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้
readTime

string (Timestamp format)

อ่านเอกสารตามที่อยู่ในเวลาที่กำหนด

โดยต้องเป็นการประทับเวลาที่มีความแม่นยำระดับไมโครวินาทีในช่วง 1 ชั่วโมงที่ผ่านมา หรือหากมีการเปิดใช้การกู้คืนช่วงเวลา ก็อาจเป็นการประทับเวลาแบบเต็มนาทีภายใน 7 วันที่ผ่านมาได้

การประทับเวลาจะอยู่ในรูปแบบ RFC3339 UTC "Zulu" ที่มีความละเอียดระดับนาโนวินาทีและมีตัวเลขเศษส่วนสูงสุด 9 หลัก ตัวอย่าง: "2014-10-02T15:01:23Z" และ "2014-10-02T15:01:23.045123456Z"

เนื้อหาการตอบกลับ

การตอบกลับสำหรับ Firestore.PartitionQuery

หากทำสำเร็จ เนื้อหาการตอบกลับจะมีข้อมูลที่มีโครงสร้างต่อไปนี้

การแสดง JSON
{
  "partitions": [
    {
      object (Cursor)
    }
  ],
  "nextPageToken": string
}
ช่อง
partitions[]

object (Cursor)

ผลลัพธ์การแบ่งพาร์ติชัน แต่ละพาร์ติชันคือจุดแยกที่สามารถใช้ Document.runQuery เป็นจุดเริ่มต้นหรือจุดสิ้นสุดสำหรับผลการค้นหา คำขอ document.runQuery ต้องทำด้วยคำค้นหาเดียวกันกับที่ส่งไปยังคำขอ document.partitionQuery นี้ เคอร์เซอร์พาร์ติชันจะจัดลำดับตามลำดับเดียวกับผลลัพธ์ของการค้นหาที่ระบุให้กับ document.partitionQuery

ตัวอย่างเช่น หากคำขอ document.partitionQuery แสดงผลเคอร์เซอร์พาร์ติชัน A และ B การเรียกใช้การค้นหาสามแบบต่อไปนี้จะแสดงชุดผลลัพธ์ทั้งหมดของคำค้นหาเดิม:

  • คำค้นหา, endAt A
  • คำค้นหา, เริ่มต้นที่ A, สิ้นสุดที่ B
  • คำค้นหา, startAt B

ผลลัพธ์ที่ว่างเปล่าอาจบ่งชี้ว่าการค้นหามีผลลัพธ์น้อยเกินไปที่จะแบ่งพาร์ติชัน หรือการค้นหายังไม่รองรับการแบ่งพาร์ติชัน

nextPageToken

string

โทเค็นหน้าเว็บที่อาจใช้เพื่อขอชุดผลลัพธ์เพิ่มเติม ตามจำนวนที่ระบุโดย partitionCount ในคำขอ document.partitionQuery หากเว้นว่างไว้ จะไม่มีผลลัพธ์เพิ่มเติม

ขอบเขตการให้สิทธิ์

ต้องใช้ขอบเขต OAuth รายการใดรายการหนึ่งต่อไปนี้

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

สำหรับข้อมูลเพิ่มเติม โปรดดูภาพรวมการตรวจสอบสิทธิ์