Method: projects.databases.documents.partitionQuery

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

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

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

यह यूआरएल gRPC ट्रांसकोडिंग सिंटैक्स का इस्तेमाल करता है.

पाथ के पैरामीटर

पैरामीटर
parent

string

ज़रूरी है. पैरंट रिसॉर्स का नाम. फ़ॉर्मैट: projects/{projectId}/databases/{databaseId}/documents. दस्तावेज़ के रिसॉर्स के नाम काम नहीं करते. सिर्फ़ डेटाबेस रिसॉर्स के नाम तय किए जा सकते हैं.

अनुरोध का मुख्य भाग

अनुरोध के मुख्य हिस्से में, इस तरह का डेटा शामिल होता है:

जेएसओएन के काेड में दिखाना
{
  "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

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

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

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

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

pageSize

integer

इस कॉल में ज़्यादा से ज़्यादा partitionCount पार्टीशन किए जा सकते हैं.

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

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

object (StructuredQuery)

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

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

string (Timestamp format)

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

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

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

जवाब का मुख्य भाग

Firestore.PartitionQuery के लिए रिस्पॉन्स.

अगर एपीआई सही से जुड़ जाता है, ताे जवाब के मुख्य भाग में नीचे दिए गए स्ट्रक्चर शामिल होता है.

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

object (Cursor)

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

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

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

एक खाली नतीजे का मतलब यह हो सकता है कि क्वेरी में बांटने के लिए बहुत कम नतीजे हैं या क्वेरी को सेगमेंट में बांटने के लिए फ़िलहाल काम नहीं किया जा सकता.

nextPageToken

string

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

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

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

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

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