2015-08-26 14 views
8

क्या अमेज़ॅन डायनेमो डीबी स्कैन ऑपरेशन आपको Array या Object के नेस्टेड विशेषताओं पर क्वेरी करने की अनुमति देता है? उदाहरण के लिए,DynamoDB नेस्टेड क्वेरी समर्थन

{ 
    Id: 206, 
    Title: "20-Bicycle 206", 
    Description: "206 description", 
    RelatedItems: [ 
     341, 
     472, 
     649 
    ], 
    Pictures: { 
     FrontView: "123", 
     RearView: "456", 
     SideView: "789" 
    } 
} 

मैं RelatedItems[2] या Pictures.RearView विशेषताओं पर क्वेरी कर सकते हैं?

उत्तर

12

हां, आप Filter Expression का उपयोग कर सकते हैं, जो कि कंडीशन एक्सप्रेशन की तरह है। वह अनुभाग जो the functions के बारे में बात करता है, जिसका आप इन प्रकार के अभिव्यक्तियों में उपयोग कर सकते हैं, निम्नलिखित का उल्लेख करता है:

"नेस्टेड विशेषता के लिए, आपको अपना पूरा पथ प्रदान करना होगा; अधिक जानकारी के लिए, Document Paths देखें।"

Document Paths संदर्भ में DynamoDB data types में नेस्टेड विशेषताओं को संदर्भित करने के उदाहरण हैं जैसे सूची (जिसे आप सरणी कह रहे हैं) और मानचित्र (जिसे आप किसी ऑब्जेक्ट को कॉल कर रहे हैं)। ऐसा करने के तरीके पर उदाहरण के लिए कि संदर्भ की जाँच करें:

  • MyList [0]
  • AnotherList [12]
  • ThisList [5] [11]
  • MyMap.nestedField
  • MyMap। nestedField.deeplyNestedField
1

DyanomoDB query में कृपया ध्यान दें कि और scan काफी अलग हैं (scan एक बहुत सी है ओस्टली ऑपरेशन)। तो जब आप @coffeeplease द्वारा इंगित किए गए दोनों पर फ़िल्टर कर सकते हैं; आप केवल क्वेरी/इंडेक्स पर:

अनुक्रमणिका के लिए मुख्य स्कीमा कर सकते हैं। इंडेक्स कुंजी स्कीमा में प्रत्येक विशेषता स्ट्रिंग, संख्या, या बाइनरी प्रकार की शीर्ष-स्तरीय विशेषता होनी चाहिए। दस्तावेज़ और सेट सहित अन्य डेटा प्रकारों की अनुमति नहीं है (ref)।

संबंधित मुद्दे