0
我有一個DynamoDB表,我存儲這些數據;基於數組中的嵌套屬性過濾表達式 - DynamoDB
其中「裝置」是分區鍵和「日期時間」的排序鍵。 我可以根據PartitionKey和日期範圍(排序鍵)查詢數據。但現在,我需要根據「數據」內的「端點」進行過濾,這是一個數組。例如,我只想在端點1存在於數據數組中時,或者例如如果存在端點IN(1,3)時,才檢索數據。 我使用下面的代碼;
var dev = event.params.querystring.device;
var from = event.params.querystring.from;
var to = event.params.querystring.to;
var ascord = event.params.querystring.ascord;
var limit = event.params.querystring.limit;
var qryParams = {
TableName : "mytable",
KeyConditionExpression: "#id = :dddd and #tm between :time1 and :time2",
FilterExpression: "data.endpoint = :ep",
ExpressionAttributeNames:{
"#id": "device",
"#tm": "datetime"
},
ExpressionAttributeValues: {
":dddd": dev,
":time1": from,
":time2": to,
":ep": 1
}
};
docClient.query(qryParams, function(err, data){
if (err){
callback(err, null);
}else {
callback(null, data);
}
})
但它不檢索任何記錄。我也嘗試使用佔位符(#data。#endpoint),但沒有奏效。 什麼是正確的方法來做到這一點? 另外,我應該在表中爲端點創建一個索引嗎?
感謝您的幫助。 關心; Gus