javascript - javascript 从 aws lambda 查询 dynamodb 中的最后一项
问题描述
所以我有一个 dynamodb 表,其中有一个主键ID
和一个辅助键Time
,它是一个数字/时间戳。现在我想查询特定ID的最新记录。我试图构造这样的参数,但不知道如何继续查询最大的项目Time
。
function get_snapshot(id, callback){
let params = {
TableName: "Table1",
KeyConditionExpression: "ID = :id and Time ", // here I stuck
ExpressionAttributeValues: {
":id": id
}
};
docClient.query(params, function(err, data){
... // process the fetched item here
})
}
我对这个领域很陌生。可能会有很多新手错误。任何帮助表示赞赏。
解决方案
您实际上并不需要Time
查询的属性。例如,如果您想获取 10 个最新项目,您的查询参数应如下所示:
let params = {
TableName: "Table1",
KeyConditionExpression: "ID = :id",
ExpressionAttributeValues: {
":id": id
},
ScanIndexForward: false,
Limit: 10
};
ScanIndexForward: false
告诉 DynamoDB 它应该返回从最高排序键值开始的结果。Limit: 1
告诉 DynamoDB 您只想获得前 10 个结果。