Method: projects.databases.documents.runQuery

क्वेरी चलाता है.

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

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

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

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

पैरामीटर
parent

string

ज़रूरी है. पैरंट रिसॉर्स का नाम. फ़ॉर्मैट: projects/{projectId}/databases/{databaseId}/documents या projects/{projectId}/databases/{databaseId}/documents/{document_path}. उदाहरण के लिए: projects/my-project/databases/my-database/documents या projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

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

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

जेएसओएन के काेड में दिखाना
{
  "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.
}
फ़ील्ड
explainOptions

object (ExplainOptions)

ज़रूरी नहीं. क्वेरी के विकल्पों के बारे में बताएं. अगर यह सेट हो, तो क्वेरी के और आंकड़े दिखाए जाएंगे. अगर ऐसा नहीं है, तो सिर्फ़ क्वेरी के नतीजे दिखाए जाएंगे.

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

object (StructuredQuery)

स्ट्रक्चर्ड क्वेरी.

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

string (bytes format)

पहले से चालू ट्रांज़ैक्शन में क्वेरी चलाएं.

यहां दी गई वैल्यू, क्वेरी को एक्ज़ीक्यूट करने के लिए ओपेक ट्रांज़ैक्शन आईडी है.

base64 कोड में बदली गई स्ट्रिंग.

newTransaction

object (TransactionOptions)

नया लेन-देन शुरू करता है और दस्तावेज़ों को पढ़ता है. डिफ़ॉल्ट तौर पर, यह लेन-देन सिर्फ़ पढ़ने के लिए होता है. नया लेन-देन आईडी, स्ट्रीम में पहले जवाब के तौर पर दिखाया जाएगा.

readTime

string (Timestamp format)

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

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

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

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

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

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

जेएसओएन के काेड में दिखाना
{
  "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.
}
फ़ील्ड
transaction

string (bytes format)

वह लेन-देन, जो इस अनुरोध के तहत शुरू किया गया था. इसे सिर्फ़ पहले जवाब में सेट किया जा सकता है. साथ ही, इसे सिर्फ़ तब सेट किया जा सकता है, जब अनुरोध में RunQueryRequest.new_transaction को सेट किया गया हो. अगर यह नीति सेट है, तो इस जवाब में कोई और फ़ील्ड सेट नहीं किया जाएगा.

base64 कोड में बदली गई स्ट्रिंग.

document

object (Document)

क्वेरी का एक नतीजा, जो अधूरी प्रोग्रेस की रिपोर्ट करते समय सेट नहीं किया गया है.

readTime

string (Timestamp format)

दस्तावेज़ को पढ़े जाने का समय. ऐसा हो सकता है कि यह बढ़ोतरी एक ही बार हो. ऐसे में, इस बात की गारंटी है कि नतीजे स्ट्रीम में पिछले दस्तावेज़ों के readTime और इस दस्तावेज़ के बीच कोई बदलाव नहीं होगा.

अगर क्वेरी का कोई नतीजा नहीं मिलता है, तो readTime वाला जवाब भेजा जाएगा और कोई document नहीं भेजा जाएगा. इससे पता चलता है कि क्वेरी कब चलाई गई थी.

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

skippedResults

integer

आखिरी जवाब और मौजूदा जवाब के बीच ऑफ़सेट की वजह से छोड़े गए नतीजों की संख्या.

explainMetrics

object (ExplainMetrics)

क्वेरी से मेट्रिक के बारे में जानकारी मिलती है. यह जानकारी सिर्फ़ तब दिखती है, जब RunQueryRequest.explain_options दिया गया हो. साथ ही, स्ट्रीम में आखिरी जवाब के साथ इसे सिर्फ़ एक बार भेजा जाता है.

यूनियन फ़ील्ड continuation_selector. क्वेरी के लिए कंटिन्यूशन मोड. अगर यह मौजूद है, तो इससे पता चलता है कि क्वेरी का मौजूदा जवाब स्ट्रीम खत्म हो गया है. इसे document के साथ या उसके बिना सेट किया जा सकता है. हालांकि, सेट होने पर और नतीजे नहीं मिलते. continuation_selector इनमें से सिर्फ़ एक हो सकती है:
done

boolean

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

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

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

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

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