Method: projects.databases.documents.partitionQuery

किसी क्वेरी को, पार्टिशन कर्सर लौटाकर उसे पार्टीशन करता है. हालांकि, उसका इस्तेमाल क्वेरी को साथ-साथ चलाने के लिए किया जा सकता है. लौटाए गए पार्टिशन कर्सर, स्प्लिट पॉइंट होते हैं. इनका इस्तेमाल document.runQuery के साथ क्वेरी के नतीजों के शुरुआती/आखिरी पॉइंट के तौर पर किया जा सकता है.

एचटीटीपी अनुरोध

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

यह यूआरएल 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

nextPageToken की वैल्यू को, पिछले कॉल के जवाब के तौर पर document.partitionQuery पर वापस लाया गया है. इसका इस्तेमाल, नतीजों का एक और सेट पाने के लिए किया जा सकता है. नतीजों के सेट के बीच ऑर्डर की कोई गारंटी नहीं है. इसलिए, नतीजों के एक से ज़्यादा सेट का इस्तेमाल करने के लिए, नतीजे के अलग-अलग सेट को मर्ज करना होगा.

उदाहरण के लिए, pageToken का इस्तेमाल करके बाद में आने वाले दो कॉल दिख सकते हैं:

  • कर्सर B, कर्सर M, कर्सर Q
  • कर्सर A, कर्सर U, कर्सर W

Docs.partitionQuery को दी गई क्वेरी के नतीजों के क्रम में, पूरे नतीजे का क्रम पाने के लिए, नतीजों के सेट मर्ज किए जाने चाहिए: कर्सर A, कर्सर B, कर्सर M, कर्सर Q, कर्सर U, कर्सर W

pageSize

integer

इस कॉल में दिए जाने वाले सेगमेंट की ज़्यादा से ज़्यादा संख्या, जो partitionCount पर निर्भर करती है.

उदाहरण के लिए, अगर partitionCount = 10 और pageSize = 8 है, तो document.partitionQuery के लिए पहला कॉल, 8 पार्टिशन तक दिखेगा. साथ ही, ज़्यादा नतीजे होने पर एक nextPageToken दिखेगा. Docs.partitionQuery पर दूसरा कॉल, partitionCount में दिए गए कुल 10 सेगमेंट को पूरा करने के लिए, ज़्यादा से ज़्यादा दो सेगमेंट दिखाएगा.

यूनियन फ़ील्ड query_type. सेगमेंट करने के लिए क्वेरी. query_type इनमें से सिर्फ़ एक हो सकता है:
structuredQuery

object (StructuredQuery)

स्ट्रक्चर्ड क्वेरी. क्वेरी में सभी डिसेंडेंट के साथ कलेक्शन तय होना चाहिए और नाम को बढ़ते क्रम में लगाया जाना चाहिए. अन्य फ़िल्टर, इसके हिसाब से ऑर्डर करें, सीमाएं, ऑफ़सेट, और स्टार्ट/एंड कर्सर काम नहीं करते.

यूनियन फ़ील्ड consistency_selector. इस अनुरोध के लिए कंसिस्टेंसी मोड. इस नीति को सेट न करने पर, डिफ़ॉल्ट रूप से एक जैसा अनुभव मिलता है. consistency_selector इनमें से सिर्फ़ एक हो सकता है:
readTime

string (Timestamp format)

दस्तावेज़ों को ठीक उसी तरह पढ़ता है जिस तरह वे दिए गए समय पर मौजूद थे.

यह पिछले एक घंटे के अंदर का सटीक टाइमस्टैंप होना चाहिए या अगर पॉइंट-इन-टाइम रिकवरी चालू है, तो यह पिछले सात दिनों में पूरे मिनट का टाइमस्टैंप भी हो सकता है.

आरएफ़सी3339 यूटीसी के "ज़ुलू" फ़ॉर्मैट में एक टाइमस्टैंप, जिसमें नैनोसेकंड रिज़ॉल्यूशन और ज़्यादा से ज़्यादा नौ फ़्रैक्शनल अंक हैं. उदाहरण: "2014-10-02T15:01:23Z" और "2014-10-02T15:01:23.045123456Z".

जवाब का लेख

Firestore.PartitionQuery का जवाब.

अगर इंडेक्सिंग सही से हाे जाती है, ताे जवाब के लेख में नीचे दिए गए स्ट्रक्चर का डेटा शामिल होता है.

JSON के काेड में दिखाना
{
  "partitions": [
    {
      object (Cursor)
    }
  ],
  "nextPageToken": string
}
फ़ील्ड
partitions[]

object (Cursor)

विभाजन के नतीजे. हर सेगमेंट एक स्प्लिट पॉइंट होता है, जिसका इस्तेमाल documents.runQuery को क्वेरी के नतीजों के शुरुआती या आखिरी पॉइंट के तौर पर करना है. document.runQuery के लिए उसी क्वेरी का इस्तेमाल करना ज़रूरी है जो इस document.partitionQuery अनुरोध के लिए दी गई थी. पार्टिशन कर्सर को उसी क्रम में रखा जाएगा जिस क्रम में document.partitionQuery को दी गई क्वेरी के नतीजों के क्रम में लगाया जाएगा.

उदाहरण के लिए, अगर documents.partitionQuery अनुरोध, विभाजन कर्सर A और B को लौटाता है, तो इन तीन क्वेरी को चलाने से मूल क्वेरी का पूरा परिणाम सेट मिलेगा:

  • क्वेरी, endAt A
  • क्वेरी, startAt A, endAt B
  • क्वेरी, startAt B

खाली नतीजे का मतलब यह हो सकता है कि क्वेरी में बहुत कम नतीजे हैं, जिन्हें बांटा जा सकता है या क्वेरी में सेगमेंट बनाने की सुविधा अभी काम नहीं करती.

nextPageToken

string

यह एक पेज टोकन होता है. इसका इस्तेमाल, नतीजों के एक अन्य सेट का अनुरोध करने के लिए किया जा सकता है. यह टोकन, उस संख्या तक हो सकता है जो दस्तावेज़ के लिए दस्तावेज़.पार्टिशनक्वेरी अनुरोध में partitionCount के ज़रिए तय की गई है. अगर खाली है, तो और नतीजे नहीं मिलते.

अनुमति के दायरे

इनमें से किसी एक OAuth स्कोप की ज़रूरत होती है:

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

ज़्यादा जानकारी के लिए, पुष्टि करने से जुड़ी खास जानकारी देखें.