2016-09-02 67 views
0

我在dynamoDB表中有數據,並試圖根據數據屬性對其進行過濾。以下是JSON數據的一個例子。過濾器查詢的一個示例是:payload.stat> 200.爲dynamoDB設置過濾器表

但是,嘗試在DynamoDB導航窗格中使用此類查詢不起作用,並且出現錯誤:「項目由一個或多個屬性組成。名稱,數據類型和值在讀取或寫入項目時,唯一需要的屬性是構成主鍵的屬性「

如何使用有效內容中的屬性過濾數據? DynamoDB表的

{ 
    "payload": { 
    "lock": "L1", 
    "maxtmptr": 50, 
    "serial": "SX001", 
    "stat": 255, 
    "timeover": 0.17, 
    "tmptr": 30 
    }, 
    "serial": "SX001", 
    "timestamp": "1472784542467" 
} 

截圖:

Click here for snapshot of DynamoDB Table

+0

什麼是有效載荷的數據類型?它被定義爲地圖嗎? – notionquest

+0

你能分享你的代碼拋出這個錯誤嗎? – Dasharath

+0

@notionquest,有效載荷是一個json數據。不需要定義有效載荷。 –

回答

2

您可以查詢或使用FilterExpressions掃描的結果。當你查詢dynamodb時,分區鍵是必須的。當您掃描dynamodb時,分區鍵是可選的。但是掃描比查詢慢。

與此

var params = { 
     "TableName": tableName, 
     "FilterExpression": "payload.lock = :val1 and timestamp = :val2", 
     "ExpressionAttributeValues": { 
      ":val1": "lockInput", 
      ":val1": "timestamp" 
     }, 
     "ReturnConsumedCapacity": "TOTAL" 
    }; 

嘗試,如果你需要更多的過濾選項,您可以自定義FilterExpression。