2015-02-17 54 views
0

我想在dynamodb 我想在4場 rule0這是獨一無二的,因此hash keywhich_ruleGlobal Index搜索多個列執行queryrule1Global Indexrule2Global IndexDynamodb查詢不能

我搜索rule0然後rule1然後rule2 我正在使用以下函數來匹配rule1原因匹配不rule0

function dynamoQueryRule1(rule0, rule1, funcQ) { 
    which_rule = "rule1"; 
    var q = { 
     "KeyConditions": { 
      "rule0": { 
       "ComparisonOperator": "EQ", 
       "AttributeValueList": [{ 
         "S": rule0 
        }] 
      } 
     }, 
     "TableName": "tbl_scripts" + table_prefix, 
     "AttributesToGet": ['id'], 
     "ConditionalOperator": "AND", 
     "QueryFilter": { 

        "which_rule": { 
         "ComparisonOperator": "EQ", 
         "AttributeValueList": [{ 
           "S": which_rule 
          }] 
        }, 
        "rule1": { 
         "ComparisonOperator": "EQ", 
         "AttributeValueList": [{ 
           "S": rule1 
          }] 
        } 
     } 
    }; 
    var params = { 
     TableName: this.options.tbl_name 
    }; 

找到,但這個功能是從來沒有得到結果rule1。即使我已經在dymamo table中創建了這些規則。 要檢查發電機數據,我已檢查scan其工作正常,但scan有1mb的限制,並不完美的用例,我的問題。 請幫我找到query格式的錯誤。

回答

0

檢查您的響應對象是否有[LastEvaluatedKey]!= null。

如果設置了[LastEvaluatedKey],則表示您尚未查詢整個數據集(同樣是因爲1M限制)。因此,您需要再次調用查詢,在查詢中設置ExclusiveStartKey =上一個響應中的LastEvaluatedKey。 (附加組合的結果)

這類似的問題,顯示瞭如何做到這一點在node.js中的語法: Recursive Fetch All Items In DynamoDB Query using Node JS