StructuredQuery

एक फायरस्टोर क्वेरी.

JSON प्रतिनिधित्व
{
  "select": {
    object (Projection)
  },
  "from": [
    {
      object (CollectionSelector)
    }
  ],
  "where": {
    object (Filter)
  },
  "orderBy": [
    {
      object (Order)
    }
  ],
  "startAt": {
    object (Cursor)
  },
  "endAt": {
    object (Cursor)
  },
  "offset": integer,
  "limit": integer
}
खेत
select

object ( Projection )

लौटने के लिए फ़ील्ड का वैकल्पिक उप-सेट।

यह किसी क्वेरी से लौटाए गए दस्तावेज़ों पर DocumentMask के रूप में कार्य करता है। जब सेट नहीं किया जाता है, तो मान लिया जाता है कि कॉल करने वाला सभी फ़ील्ड वापस चाहता है।

from[]

object ( CollectionSelector )

पूछताछ के लिए संग्रह.

where

object ( Filter )

लागू करने के लिए फ़िल्टर.

orderBy[]

object ( Order )

क्वेरी परिणामों पर लागू करने का आदेश.

फायरस्टोर कॉल करने वालों को पूर्ण ऑर्डर, आंशिक ऑर्डर या बिल्कुल भी ऑर्डर नहीं देने की अनुमति देता है। सभी मामलों में, फायरस्टोर निम्नलिखित नियमों के माध्यम से स्थिर ऑर्डर की गारंटी देता है:

  • orderBy असमानता फ़िल्टर के साथ उपयोग किए जाने वाले सभी फ़ील्ड को संदर्भित करने की आवश्यकता है।
  • वे सभी फ़ील्ड जिनका orderBy में होना आवश्यक है लेकिन वे पहले से मौजूद नहीं हैं, उन्हें फ़ील्ड नाम के शब्दकोषीय क्रम में जोड़ा जाता है।
  • यदि __name__ पर कोई आदेश निर्दिष्ट नहीं है, तो इसे डिफ़ॉल्ट रूप से जोड़ा जाता है।

फ़ील्ड्स को अंतिम निर्दिष्ट क्रम के समान सॉर्ट दिशा के साथ जोड़ा जाता है, या यदि कोई ऑर्डर निर्दिष्ट नहीं किया गया था तो 'आरोही' के साथ जोड़ा जाता है। उदाहरण के लिए:

  • ORDER BY a ORDER BY a ASC, __name__ ASC
  • ORDER BY a DESC ORDER BY a DESC, __name__ DESC
  • WHERE a > 1 बन जाता है WHERE a > 1 ORDER BY a ASC, __name__ ASC
  • WHERE __name__ > ... AND a > 1 बन जाता है WHERE __name__ > ... AND a > 1 ORDER BY a ASC, __name__ ASC
startAt

object ( Cursor )

क्वेरी शुरू करने के लिए परिणाम सेट में किसी स्थिति का संभावित उपसर्ग।

परिणाम सेट का क्रम मूल क्वेरी के ORDER BY खंड पर आधारित है।

SELECT * FROM k WHERE a = 1 AND b > 2 ORDER BY b ASC, __name__ ASC;

इस क्वेरी के परिणाम (b ASC, __name__ ASC) द्वारा क्रमबद्ध हैं।

कर्सर या तो पूर्ण ऑर्डर या स्थान के उपसर्ग को संदर्भित कर सकते हैं, हालांकि यह दिए गए ORDER BY से अधिक फ़ील्ड को संदर्भित नहीं कर सकता है।

उपरोक्त उदाहरण को जारी रखते हुए, निम्नलिखित प्रारंभ कर्सर संलग्न करने से अलग-अलग प्रभाव होंगे:

  • START BEFORE (2, /k/123) : a = 1 AND b > 2 AND __name__ > /k/123 ठीक पहले क्वेरी शुरू करें।
  • START AFTER (10) : a = 1 AND b > 10 के ठीक बाद क्वेरी शुरू करें।

OFFSET के विपरीत, जिसे छोड़ने के लिए पहले N परिणामों को स्कैन करने की आवश्यकता होती है, एक स्टार्ट कर्सर क्वेरी को तार्किक स्थिति में शुरू करने की अनुमति देता है। वास्तविक परिणाम से मेल खाने के लिए इस स्थिति की आवश्यकता नहीं है, यह अगले दस्तावेज़ को खोजने के लिए इस स्थिति से आगे स्कैन करेगा।

आवश्यकता है:

  • मानों की संख्या ORDER BY खंड में निर्दिष्ट फ़ील्ड की संख्या से अधिक नहीं हो सकती।
endAt

object ( Cursor )

क्वेरी को समाप्त करने के लिए परिणाम सेट में किसी स्थिति का संभावित उपसर्ग।

यह START_AT के समान है लेकिन यह प्रारंभ स्थिति के बजाय अंतिम स्थिति को नियंत्रित करता है।

आवश्यकता है:

  • मानों की संख्या ORDER BY खंड में निर्दिष्ट फ़ील्ड की संख्या से अधिक नहीं हो सकती।
offset

integer

पहला परिणाम लौटाने से पहले छोड़े जाने वाले दस्तावेज़ों की संख्या।

यह WHERE , START AT , & END AT द्वारा निर्दिष्ट बाधाओं के बाद लेकिन LIMIT खंड से पहले लागू होता है।

आवश्यकता है:

  • यदि निर्दिष्ट किया गया है तो मान शून्य से अधिक या उसके बराबर होना चाहिए।
limit

integer

वापस आने वाले परिणामों की अधिकतम संख्या.

अन्य सभी बाधाओं के बाद लागू होता है।

आवश्यकता है:

  • यदि निर्दिष्ट किया गया है तो मान शून्य से अधिक या उसके बराबर होना चाहिए।

प्रक्षेपण

लौटने के लिए दस्तावेज़ के फ़ील्ड का प्रक्षेपण।

JSON प्रतिनिधित्व
{
  "fields": [
    {
      object (FieldReference)
    }
  ]
}
खेत
fields[]

object ( FieldReference )

लौटने के लिए खेत.

यदि खाली है, तो सभी फ़ील्ड लौटा दी जाती हैं। केवल दस्तावेज़ का नाम वापस करने के लिए, ['__name__'] का उपयोग करें।

संग्रह चयनकर्ता

संग्रह का चयन, जैसे messages as m1

JSON प्रतिनिधित्व
{
  "collectionId": string,
  "allDescendants": boolean
}
खेत
collectionId

string

संग्रह आईडी. सेट होने पर, केवल इस आईडी वाले संग्रह का चयन करता है।

allDescendants

boolean

गलत होने पर, केवल उन संग्रहों का चयन करता है जो युक्त RunQueryRequest में निर्दिष्ट parent के तत्काल बच्चे हैं। सत्य होने पर, सभी वंशज संग्रहों का चयन करता है।

फ़िल्टर

एक फ़िल्टर.

JSON प्रतिनिधित्व
{

  // Union field filter_type can be only one of the following:
  "compositeFilter": {
    object (CompositeFilter)
  },
  "fieldFilter": {
    object (FieldFilter)
  },
  "unaryFilter": {
    object (UnaryFilter)
  }
  // End of list of possible types for union field filter_type.
}
खेत
यूनियन फ़ील्ड filter_type । फ़िल्टर का प्रकार. filter_type निम्नलिखित में से केवल एक हो सकता है:
compositeFilter

object ( CompositeFilter )

एक समग्र फ़िल्टर.

fieldFilter

object ( FieldFilter )

दस्तावेज़ फ़ील्ड पर एक फ़िल्टर.

unaryFilter

object ( UnaryFilter )

एक फ़िल्टर जो बिल्कुल एक तर्क लेता है।

कम्पोजिटफ़िल्टर

एक फ़िल्टर जो दिए गए ऑपरेटर का उपयोग करके कई अन्य फ़िल्टर को मर्ज करता है।

JSON प्रतिनिधित्व
{
  "op": enum (Operator),
  "filters": [
    {
      object (Filter)
    }
  ]
}
खेत
op

enum ( Operator )

एकाधिक फ़िल्टर के संयोजन के लिए ऑपरेटर।

filters[]

object ( Filter )

संयोजित करने के लिए फ़िल्टर की सूची.

आवश्यकता है:

  • कम से कम एक फ़िल्टर मौजूद है.

ऑपरेटर

एक समग्र फ़िल्टर ऑपरेटर.

एनम्स
OPERATOR_UNSPECIFIED अनिर्दिष्ट। इस मान का उपयोग नहीं किया जाना चाहिए.
AND सभी संयुक्त फ़िल्टर को संतुष्ट करने के लिए दस्तावेज़ आवश्यक हैं।
OR संयुक्त फ़िल्टर में से कम से कम एक को संतुष्ट करने के लिए दस्तावेज़ों की आवश्यकता होती है।

फ़ील्डफ़िल्टर

किसी विशिष्ट फ़ील्ड पर फ़िल्टर.

JSON प्रतिनिधित्व
{
  "field": {
    object (FieldReference)
  },
  "op": enum (Operator),
  "value": {
    object (Value)
  }
}
खेत
field

object ( FieldReference )

फ़िल्टर करने के लिए फ़ील्ड.

op

enum ( Operator )

फ़िल्टर करने के लिए ऑपरेटर.

value

object ( Value )

तुलना करने योग्य मूल्य.

ऑपरेटर

एक फ़ील्ड फ़िल्टर ऑपरेटर.

एनम्स
OPERATOR_UNSPECIFIED अनिर्दिष्ट। इस मान का उपयोग नहीं किया जाना चाहिए.
LESS_THAN

दिया गया field दिए गए value से कम है.

आवश्यकता है:

  • वह field orderBy में पहले आती है।
LESS_THAN_OR_EQUAL

दिया गया field दिए गए value से कम या उसके बराबर है।

आवश्यकता है:

  • वह field orderBy में पहले आती है।
GREATER_THAN

दिया गया field दिए गए value से बड़ा है.

आवश्यकता है:

  • वह field orderBy में पहले आती है।
GREATER_THAN_OR_EQUAL

दिया गया field दिए गए value से बड़ा या उसके बराबर है।

आवश्यकता है:

  • वह field orderBy में पहले आती है।
EQUAL दिया गया field दिए गए value के बराबर है।
NOT_EQUAL

दिया गया field दिए गए value के बराबर नहीं है.

आवश्यकता है:

  • कोई अन्य NOT_EQUAL , NOT_IN , IS_NOT_NULL , या IS_NOT_NAN .
  • वह field orderBy में सबसे पहले आती है।
ARRAY_CONTAINS दिया गया field एक सरणी है जिसमें दिया गया value शामिल है।
IN

दिया गया field दिए गए सरणी में कम से कम एक मान के बराबर है।

आवश्यकता है:

  • वह value एक गैर-रिक्त ArrayValue है, जो विच्छेदन सीमा के अधीन है।
  • समान क्वेरी में कोई NOT_IN फ़िल्टर नहीं।
ARRAY_CONTAINS_ANY

दिया गया field एक सरणी है जिसमें दिए गए सरणी में से कोई भी मान शामिल है।

आवश्यकता है:

  • वह value एक गैर-रिक्त ArrayValue है, जो विच्छेदन सीमा के अधीन है।
  • समान वियोजन के भीतर कोई अन्य ARRAY_CONTAINS_ANY फ़िल्टर नहीं है।
  • समान क्वेरी में कोई NOT_IN फ़िल्टर नहीं।
NOT_IN

field का मान दिए गए सरणी में नहीं है.

आवश्यकता है:

  • वह value अधिकतम 10 मानों वाला एक गैर-रिक्त ArrayValue है।
  • कोई अन्य OR , IN , ARRAY_CONTAINS_ANY , NOT_IN , NOT_EQUAL , IS_NOT_NULL , या IS_NOT_NAN
  • वह field orderBy में सबसे पहले आती है।

यूनरीफ़िल्टर

एकल ऑपरेंड वाला एक फ़िल्टर.

JSON प्रतिनिधित्व
{
  "op": enum (Operator),

  // Union field operand_type can be only one of the following:
  "field": {
    object (FieldReference)
  }
  // End of list of possible types for union field operand_type.
}
खेत
op

enum ( Operator )

आवेदन करने के लिए यूनरी ऑपरेटर।

यूनियन फ़ील्ड operand_type । फ़िल्टर के लिए तर्क. operand_type निम्नलिखित में से केवल एक हो सकता है:
field

object ( FieldReference )

वह फ़ील्ड जिस पर ऑपरेटर लागू करना है.

ऑपरेटर

एक यूनरी ऑपरेटर.

एनम्स
OPERATOR_UNSPECIFIED अनिर्दिष्ट। इस मान का उपयोग नहीं किया जाना चाहिए.
IS_NAN दिया गया field NaN के बराबर है।
IS_NULL दिया गया field NULL के बराबर है।
IS_NOT_NAN

दिया गया field NaN के बराबर नहीं है।

आवश्यकता है:

  • कोई अन्य NOT_EQUAL , NOT_IN , IS_NOT_NULL , या IS_NOT_NAN .
  • वह field orderBy में सबसे पहले आती है।
IS_NOT_NULL

दिया गया field NULL के बराबर नहीं है।

आवश्यकता है:

  • एक NOT_EQUAL , NOT_IN , IS_NOT_NULL , या IS_NOT_NAN .
  • वह field orderBy में सबसे पहले आती है।

आदेश

एक क्षेत्र पर एक आदेश.

JSON प्रतिनिधित्व
{
  "field": {
    object (FieldReference)
  },
  "direction": enum (Direction)
}
खेत
field

object ( FieldReference )

ऑर्डर करने के लिए फ़ील्ड.

direction

enum ( Direction )

द्वारा ऑर्डर करने की दिशा. ASCENDING के लिए डिफ़ॉल्ट।

दिशा

एक तरह की दिशा.

एनम्स
DIRECTION_UNSPECIFIED अनिर्दिष्ट।
ASCENDING आरोही।
DESCENDING उतरता हुआ।