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