2015-08-19 4 views
6

में मेरी स्थिति वैश्विक डायरेक्टरी इंडेक्स के रूप में "feed_guid" के साथ डायनामोडब तालिका है। मैं उस तालिका में feed_guid के एक सेट से पूछना चाहता हूं। चूंकि "feed_guid" मेरी प्राथमिक कुंजी नहीं है, इसलिए मैं getBatchItem का उपयोग नहीं कर सकता। जब मैंने निम्न विधि का प्रयास किया, तो मुझे यह त्रुटि मिली "अमान्य ऑपरेटर KeyConditionExpression में उपयोग किया गया: या"।डायनेमोडब क्वेरी - या KeyConditionExpression

$options = array(
      'TableName' => 'feed', 
       'IndexName' => 'GuidIndex', 
       'KeyConditionExpression' => 'feed_guid = :v_guid1 or feed_guid = :v_guid2', 

       'ExpressionAttributeValues' => array (
        ':v_guid1' => array('S' => '8a8106e48bdbe81bf88d611f4b2104b5'), 
        ':v_guid2' => array('S' => '19cab76242a6d85717de64fe4f8acbd4') 
       ), 
       'Select' => 'ALL_ATTRIBUTES', 
      ); 
      $response = $dynamodbClient->query($options); 

उत्तर

2

आप या शर्त का उपयोग नहीं कर सकते हैं। आपको श्रेणी एट्रिब्यूटनाम का उपयोग करना चाहिए: श्रेणी 1 और: श्रेणीफल 2 यदि संभव हो या feed_guid IN (: v_guid1,: v_guid2)।

ExpressionAttributeValues और KeyConditionExpression

+1

यह काम नहीं कर रहा है। यह दिखाता है "KeyConditionExpression: IN" त्रुटि में उपयोग किया गया अमान्य ऑपरेटर। –

+0

के बीच उपयोग करने का प्रयास करें। इन का उपयोग ExpressionAttributeValues ​​ – user1697575

+0

के लिए किया जाता है बस पहले परिभाषा पढ़ें। http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html#DDB-Query-request-KeyConditionExpression –

2

देखें आदेश प्राप्त करने के लिए तुम यहाँ क्या चाहते हैं में, आप दो अलग-अलग क्वेरी के मिलन लेने के लिए की आवश्यकता होगी।

वर्तमान में, DynamoDB के Query API केवल केवल KeyConditionExpression में हैश और सीमा कुंजी पर एक शर्त होने क्योंकि इस आइटम आप खोज को सीमित करता है और अंत में लागत कम कर देता के आप यहाँ क्या वर्णन किया है की तरह एक अधिक जटिल प्रश्न भी बोल समर्थन करता है।

+3

का उपयोग करने का प्रयास कर सकते हैं क्या आप कृपया "उदाहरणों के संघ का उपयोग कैसे करें" उदाहरण दे सकते हैं? अमेज़ॅन दस्तावेज में हर जगह उन्होंने सैद्धांतिक रूप से वर्णन किया है। – TheTiger

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