मान लें कि मेरे पास मेरी डायनेमोडीबी तालिका है, Order ID
प्राथमिक कुंजी के रूप में। :
Order ID
हर बार जब भी मैं कोई नया आइटम जोड़ता/डालता हूं, एक-एक करके बढ़ता है।
अब, मेरे पास एक नंबर है, मान लीजिए 1000
, और मेरा उपयोगकर्ता वे सभी आइटम प्राप्त करना चाहता है जिनमें Order ID
> 1000
हैं। तो लौटाए गए आइटम 1001
, 1002
, 1003
, और इसी तरह आखिरी तक होंगे।
मेरी आवश्यकता उतनी ही सरल है जितनी यह प्रतीत होती है - लेकिन क्या एडब्ल्यूएस डायनेमोडीबी की Query
विधि के साथ ऐसा करना संभव है?
हर प्रकार की सहायता का स्वागत है, धन्यवाद!
2 जवाब
वर्तमान में विभाजन कुंजी पर फ़िल्टर करने का कोई तरीका नहीं है, लेकिन मैं एक तरीका सुझा सकता हूं कि आप जो चाहते हैं उसे प्राप्त कर सकें।
आप Query
के साथ सही दिशा में जा रहे हैं, जिसमें "से बड़ा" ऑपरेटर है। हालाँकि, यह केवल सॉर्ट कुंजी विशेषता पर कार्य करता है।
क्वेरी के साथ, आप अनिवार्य रूप से एकल पार्टीशन कुंजी चुनते हैं, और एक फ़िल्टर एक्सप्रेशन प्रदान करते हैं जो उस पार्टीशन के भीतर आइटम्स की सॉर्ट कुंजी पर लागू होता है।
चूंकि आपकी पार्टीशन कुंजी वर्तमान में "ऑर्डर आईडी?" है, इसलिए आपको अपनी इच्छानुसार क्वेरी करने के लिए एक ग्लोबल सेकेंडरी इंडेक्स जोड़ना होगा।
आपके एक्सेस पैटर्न के बारे में अधिक जानने के बिना, मेरा सुझाव है कि आप विभाजन कुंजी के रूप में "से" का उपयोग करके एक ग्लोबल सेकेंडरी इंडेक्स जोड़ें, जो मुझे लगता है कि उपयोगकर्ता आईडी है। फिर आप "ऑर्डर आईडी" को सॉर्ट कुंजी के रूप में उपयोग कर सकते हैं।
मेरा उपयोगकर्ता उन सभी वस्तुओं को प्राप्त करना चाहता है जिनके पास ऑर्डर आईडी> 1000 है।
जीएसआई के साथ, आप आइटम के लिए एक क्वेरी करके इसे प्राप्त कर सकते हैं जहां "User ID" is userId and "From" > orderId
.
आप क्वेरी यहां पर अधिक जानकारी प्राप्त कर सकते हैं, GSI जोड़ने पर विवरण यहां< a>, और विभाजन कुंजी चुनने के बारे में अधिक जानकारी यहां.
नहीं, क्योंकि Query
सटीक कुंजी की अपेक्षा करता है, और विभाजन कुंजी के लिए अभिव्यक्ति की अनुमति नहीं देता है (हालांकि यह सॉर्ट कुंजी के लिए करता है)।
हालांकि आप जो उपयोग कर सकते हैं वह Scan
FilterExpressions के साथ है (देखें स्कैन के लिए एक्सप्रेशन फ़िल्टर करें सिंटैक्स के लिए और कंडीशन एक्सप्रेशन ) यह बाद में सभी रिकॉर्ड और फ़िल्टर पढ़ता है, इसलिए यह सबसे प्रभावी तरीका नहीं है।
संबंधित सवाल
नए सवाल
amazon-web-services
Amazon Web Services (AWS) एक सार्वजनिक-क्लाउड है: IaaS (एक सेवा के रूप में अवसंरचना) और अमेज़न द्वारा उपलब्ध कराए गए SaaS (एक सेवा के रूप में सॉफ़्टवेयर)। प्रोग्रामिंग और आर्किटेक्चर के बारे में प्रश्न विषय पर हैं। Https://serverfault.com पर सामान्य सर्वर सहायता प्राप्त की जा सकती है। AWS टैग का उपयोग शायद ही कभी किया जाता है और आमतौर पर अन्य टैग के साथ प्रश्न के विषय को अधिक स्पष्ट रूप से परिभाषित करने के लिए उपयोग किया जाएगा।