इस गाइड में लिस्ट फ़िल्टर सिंटैक्स और कई संसाधन प्रकार.
एपीआई के कुछ तरीके, एक फ़िल्टर को स्वीकार कर सकते हैं, ताकि जवाब.
खास जानकारी
इस सेक्शन में, लिस्ट फ़िल्टर सिंटैक्स के स्ट्रक्चर के बारे में खास जानकारी दी गई है.
फ़िल्टर
expression
वाली स्ट्रिंग होती है.expression
एक बूलियन होता है तुलनाओं का संयोजन:expression = ["NOT"] comparison { ("AND" | "OR") ["NOT"] comparison } expression = ( expression )
comparison
, वैल्यू वाले रिसॉर्स फ़ील्ड से मैच करता है. सभी सोर्स का इस्तेमाल करें सामान्य कंपैरिज़न ऑपरेटर का इस्तेमाल करते हैं.comparison = name OP value OP = "<=" | "<" | ">=" | ">" | "!=" | "=" | ":"
स्ट्रिंग पर
has
ऑपरेटर, कोलन (:
) का इस्तेमाल किया जा सकता है और इसे दोहराया जा सकता है फ़ील्ड. जानकारी के लिए, ऑपरेटर है सेक्शन देखें.फ़िल्टर में इस तरह की वैल्यू का इस्तेमाल किया जा सकता है:
- Numbers
- स्ट्रिंग
- ब्रैकेट वाले एक्सप्रेशन
value = number| string | "*" | "(" expression ")"
स्ट्रिंग से यह जानकारी मिल सकती है:
- आर्बिट्रेरी टेक्स्ट
- बूलियन
- Enum वैल्यू
- टाइमस्टैंप
बूलियन एक्सप्रेशन
expression = ["NOT"|"-"] comparison {["AND" | "OR"] ["NOT"|"-"] comparison}
कार्रवाइयां नीचे दिए गए क्रम में की जाती हैं:
NOT
OR
AND
उदाहरण के लिए, नीचे दिए गए एक्सप्रेशन एक जैसे हैं:
a OR NOT b AND NOT c OR d
(a OR (NOT b)) AND ((NOT c) OR d)
तुलनाओं के बीच में, AND
ऑपरेटर को छोड़ा जा सकता है. उदाहरण के लिए, निम्न
फ़िल्टर एक जैसे होते हैं:
c=d AND e=f
c=d e=f
NOT
के विकल्प के तौर पर, हाइफ़न (-
) का इस्तेमाल किया जा सकता है. इसमें नहीं हो सकता
हाइफ़न (-
) और नीचे दी गई तुलना के बीच स्पेस. उदाहरण के लिए,
निम्न फ़िल्टर एक जैसे हैं:
NOT e=f
-e=f
तुलना
इस सेक्शन में, यहां दी गई "name OP value"
तुलनाओं के बारे में बताया गया है:
comparison = name OP value
कहां
OP = "<=" | "<" | ">=" | ">" | "!=" | "=" | ":"
name = identifier { "." identifier }
identifier = unquoted_text
value = number | string | "*" | "(" expression ")"
तुलना की बाईं ओर, एपीआई रिसॉर्स फ़ील्ड के पाथ का नाम होता है.
इस नाम में, संसाधन के आइडेंटिफ़ायर की एक सीरीज़ होती है. ये आइडेंटिफ़ायर, पीरियड (.
) के हिसाब से जुड़े होते हैं.
हर फ़ील्ड आइडेंटिफ़ायर के बाद, उस फ़ील्ड के नामों का अगला लेवल आता है. इसके लिए
उदाहरण के लिए, ऐसे संसाधन पर विचार करें जिसमें एक कॉम्प्लेक्स फ़ील्ड item
हो, जिसमें एक और
जटिल फ़ील्ड tool
, जिसमें shape
नाम की फ़ील्ड है. इसके लिए फ़िल्टर में
संसाधन के लिए, आप item.tool.shape
नाम से आकार को देखेंगे.
दाईं ओर आम तौर पर एक अदिश मान होता है, जो फ़ील्ड के टाइप किया है और उसकी तुलना की है. वैल्यू लिटरल टाइप देखें सेक्शन देखें.
किसी तुलना के दाएं हिस्से को ब्रैकेट में दिए गए बूलियन के तौर पर भी दिखाया जा सकता है
लिटरल वैल्यू और/या बूलियन एक्सप्रेशन का कॉम्बिनेशन, जिसमें सिर्फ़
लिटरल वैल्यू (NOT
से पहले या इसके बिना). बाईं ओर का नाम और
तुलना करने वाला ऑपरेटर हर वैल्यू पर लागू होता है. उदाहरण के लिए,
निम्न फ़िल्टर एक जैसे हैं:
deal.name = ("test 1" OR "test 2")
deal.name = "test 1" OR deal.name = "test 2"
यहां एक जैसी दो चीज़ों का ज़्यादा मुश्किल उदाहरण दिया गया है फ़िल्टर:
deal.name = ("test 1" OR "test 2" AND (NOT "test3" OR "test4"))
(deal.name = "test 1" OR deal.name = "test 2") AND ( (NOT deal.name = "test3") OR deal.name = "test4")
वैल्यू लिटरल टाइप
तुलना करने वाले ऑपरेटर की दाईं ओर मौजूद वैल्यू को अलग-अलग कैटगरी में बांटा जा सकता है: स्ट्रिंग की लिटरल वैल्यू.
नंबर
इस सेक्शन में, न्यूमेरिक (संख्या वाली) लिटरल वैल्यू को दिखाने के बारे में बताया गया है.
टाइप | परिभाषा | उदाहरण |
---|---|---|
डबल | कोई भी संख्या जिसमें दशमलव बिंदु होता हो. जैसे, निशान ("-") के साथ या उसके बिना को डबल माना जाता है. |
|
पूर्णांक | ऐसा कोई भी नंबर जिसमें निशान के साथ या उसके बिना दशमलव बिंदु न हो ("-") को पूर्णांक माना जाता है. |
|
स्ट्रिंग
यह सेक्शन उन टाइप के बारे में बताता है जिन्हें आप फ़िल्टर सिंटैक्स.
टाइप | परिभाषा | उदाहरण |
---|---|---|
बूलियन | किसी भी अक्षर वाले केस में TRUE या FALSE . |
|
Enum | गिनती के टाइप की लिटरल वैल्यू. Enum, केस-सेंसिटिव (बड़े और छोटे अक्षरों में अंतर) होते हैं. |
FINALIZED और Finalized अलग-अलग हैं
|
स्ट्रिंग | ऐसी कोई भी स्ट्रिंग जिसमें UTF-8 कोड में बदला गया या 7-बिट ASCII टेक्स्ट हो. एम्बेड किए गए कोटेशन मार्क को बैकस्लैश से एस्केप किया जाना चाहिए. खाली सफ़ेद जगह वाली बिना कोट वाली स्ट्रिंग को इंप्लिसिट `AND` माना जाता है स्ट्रिंग को खाली सफ़ेद जगह से बांटने के बाद, सभी शब्दों के बीच में. |
|
टाइमस्टैंप | ISO8601 स्टैंडर्ड फ़ॉर्मैट में एक स्ट्रिंग. |
"2014-10-02T15:01:23.045Z"
|
तुलना करने वाले ऑपरेटर
यहां कंपैरिज़न ऑपरेटर की जानकारी दी गई है:
- इससे छोटी या इसके बराबर है:
"<="
- इससे कम है:
"<"
- इससे ज़्यादा या इसके बराबर:
">="
- इससे ज़्यादा:
">"
- इसके बराबर नहीं है:
"!="
- इसके बराबर:
"="
- जिनमें ये शामिल हैं:
":"
ये ऑपरेटर दोगुने, पूर्णांक, बूलियन, Enum, और टाइमस्टैंप वैल्यू पर लागू होते हैं प्रकार.
ऑपरेटर है
इन देशों/इलाकों में खास कार्रवाइयों के लिए, HAS
ऑपरेटर (:
) का इस्तेमाल किया जा सकता है
फ़ील्ड:
- सबस्ट्रिंग
- जब
HAS
ऑपरेटर का इस्तेमाल किसी स्ट्रिंग कॉलम में मौजूद मानों की तुलना स्ट्रिंग में, ऑपरेटर एक सबस्ट्रिंग के तौर पर काम करेगा. उदाहरण के लिए,name:"abcd"
उन सभी इंस्टेंस की वैल्यू दिखाता है जिनमेंname
वाली स्ट्रिंग में शामिल है"abcd"
. - मौजूदगी की जांच
- जब खास वर्ण
*
के साथHAS
ऑपरेटर का इस्तेमाल किया जाता है, तोHAS
ऑपरेटर, ऐसी वैल्यू की जांच करता है जो शून्य नहीं हैं. उदाहरण के लिए,name:*
उन सभी इंस्टेंस की वैल्यू दिखाता है जिनमेंname
शून्य, मौजूद नहीं या तय नहीं है. - नॉन-स्ट्रिंग वैल्यू के साथ
HAS
ऑपरेटर का इस्तेमाल करने पर, वह इस तरह काम करता हैEQUALS
(=
) ऑपरेटर. उदाहरण के लिए,isCompleted:true
इसमें काम करता है:isCompleted = true
की तरह. - दोहराए गए फ़ील्ड
दोहराए गए एपीआई रिसॉर्स को फ़िल्टर करने के लिए,
HAS
(:
) ऑपरेटर का इस्तेमाल किया जा सकता है फ़ील्ड होने पर, आपको इन बातों का ध्यान रखना चाहिए:- फ़ील्ड आइडेंटिफ़ायर पाथ पर दोहराया गया सिर्फ़ एक कॉम्पोनेंट है
- फ़ील्ड पाथ का आखिरी आइडेंटिफ़ायर, अदिश टाइप का है
नेस्ट किए गए दोहराए गए फ़ील्ड पर फ़िल्टर करने की सुविधा काम नहीं करती.
यहां एक उदाहरण दिया गया है:
item
में एकcolors
फ़ील्ड है, जिसमें"red"
,"blue"
और"yellow"
.item.colors:("red")
वे सभी आइटम लौटाता है जिनका मान"red"
colors
फ़ील्ड.item.colors:("red" "yellow")
वे सभी आइटम लौटाता है जिनमें"red"
और दोनों होते हैंcolors
फ़ील्ड में"yellow"
.item.colors:("red" OR "yellow")
वे सभी आइटम लौटाता है जिनमें"red"
याcolors
फ़ील्ड में"yellow"
.
item
में एक दोहराया गयाtools
फ़ील्ड भी है, जो अदिश फ़ील्ड वाला एक जटिल ऑब्जेक्ट है फ़ील्डshape
, जिसकी वैल्यू"square"
या"round"
हो सकती है.item.tools.shape:("square")
"square"
आकार वाले सभी आइटम लौटाता है टूल.item.tools.shape:("square" "round")
वे सभी आइटम लौटाता है जिनमें दोनों"square"
आकार का टूल और"round"
के आकार का टूल.item.tools.shape:("square" OR "round")
वे सभी आइटम लौटाता है जिनमें"square"
आकार टूल या"round"
के आकार का टूल.
नेस्ट किए गए ऐसे फ़ील्ड जिनमें जानकारी नहीं भरी गई है
नेस्ट किए गए फ़ील्ड, रूट-लेवल फ़ील्ड के सब-फ़ील्ड होते हैं. उदाहरण के लिए, shape
item.tools.shape
, items.tools
का नेस्ट किया गया फ़ील्ड है.
रूट-लेवल फ़ील्ड डिफ़ॉल्ट रूप से गलत पर सेट होते हैं. नेस्ट किए गए फ़ील्ड में, डिफ़ॉल्ट रूप से जानकारी अपने-आप नहीं भरी जाती.
जिन ऑब्जेक्ट में नेस्ट किए गए फ़ील्ड नहीं भरे गए हैं वे नेगेटिव वैल्यू से नहीं लौटाए जाते हैं
फ़िल्टर (!=
).
यहां एक उदाहरण दिया गया है:
item.tools
की एक size
ईनम है, जिसका मान "SMALL"
, "MEDIUM"
पर सेट किया जा सकता है,
या "LARGE"
.
अगर आपके पास ये आइटम हैं:
{
"name": "item1",
"tools": {
"size": "MEDIUM"
}
},
{
"name": "item2",
"tools": {
"size": "LARGE"
}
},
{
"name": "item3"
}
नेगेटिव फ़िल्टर "tools.size != SMALL"
की मदद से, items.list
को किया गया कॉल
निम्न:
{
"items": [
{
"name": "item1",
"tools": {
"size": "MEDIUM"
}
},
{
"name": "item2",
"tools": {
"size": "LARGE"
}
}
]
}
item.tools.size
को item3
के लिए सेट नहीं किया गया है, इसलिए नेगेटिव फ़िल्टर में
item3
ऑब्जेक्ट दिखाता है.
उदाहरण
उदाहरण | ब्यौरा |
---|---|
externalDealId = "123456789" |
externalDealId , जिसकी स्ट्रिंग की वैल्यू "123456789" है. |
advertiserId:93641 |
advertiserId , जिसकी वैल्यू 93641 है. |
isSetupComplete = true |
isSetupComplete , TRUE के बराबर है. |
updateTime > "2018-02-14T11:09:19.378Z" |
updateTime , 14/02/2018 को 11:09:19.378 यूटीसी के बाद का है |
displayName = "proposal" AND proposalRevision = 3 |
displayName स्ट्रिंग में "प्रपोज़ल" की वैल्यू एक जैसी है और प्रस्ताव संशोधन 3 के बराबर है. |
displayName = "proposal" OR proposalRevision = 3 |
displayName में "प्रपोज़ल" का स्ट्रिंग वैल्यू है या प्रस्ताव संशोधन 3 के बराबर है. |
NOT displayName = "proposal" |
displayName , "प्रपोज़ल" के बराबर नहीं है. |
proposalState = (PROPOSED OR BUYER_ACCEPTED) |
proposalState की एक enum वैल्यू है, जो या तो PROPOSED या Purchases_ आधारित के बराबर है. |
proposalState = (PROPOSED AND BUYER_ACCEPTED) |
proposalState की enum वैल्यू, PROPOSED AND Purchases_ संग्रह के बराबर है |
dealName = Test Deal |
INVALID एक्सप्रेशन |
dealName = "Test Deal" |
dealName , "टेस्ट डील" के बराबर है. |
dealName = (Test Deal) |
dealName , "टेस्ट" के बराबर है और "डील" के बराबर भी हो. |
dealName = ("Test1" OR "Test2") |
dealName , "Test1" के बराबर है या "Test2" के बराबर हों. |
dealName:* |
dealName is not null. |
dealName:"test" |
dealName में "टेस्ट" सबस्ट्रिंग शामिल है. |
dealName:("A B") |
dealName में "A B" सबस्ट्रिंग है. |
dealName:(A B) |
dealName में "A" सबस्ट्रिंग है और सबस्ट्रिंग "B" हो. |
dealName:("A" OR "B" AND "C") |
dealName में या तो "A" सबस्ट्रिंग है या "B" और इसमें "C" सबस्ट्रिंग भी शामिल है |
dealName:("A B" C) |
dealName में "A B" सबस्ट्रिंग है और इसमें सबस्ट्रिंग "C" भी होगी. |
dealName:("A B" OR C D) |
dealName में "A B" सबस्ट्रिंग है या "C", और इसमें सबस्ट्रिंग "D" भी शामिल है. |
dealName:(NOT "A" B) |
dealName में कोई भी सबस्ट्रिंग "A" नहीं है और इसमें सबस्ट्रिंग "B" भी शामिल है. |
dealName:(NOT "A" OR "B") |
dealName में कोई भी सबस्ट्रिंग "A" नहीं है या सबस्ट्रिंग "B" में है. |