带有AWS Lambda函数的DyanamoDB,按Desc命令排序,并进行扫描

时间:2019-08-24 10:48:04

标签: aws-lambda amazon-dynamodb

我正在尝试使用Node.js创建AWS Lambda函数,并尝试从dynamodb扫描记录。但是它给了我随机的记录,我想获取最近添加到表中的前5条记录。我想根据时间戳排序,以便可以获取最新的5条记录。任何人都有一个主意,请帮帮我。

1 个答案:

答案 0 :(得分:1)

dynamodb并不打算在其扫描操作中支持排序。查询操作支持订单。

要获得所需的行为,您可以执行以下操作(有一项警告,请参见下文):

确保您表上的每个记录都有一个属性(我们将其称为x),该属性始终具有相同的值(与哪个值无关,假设该值始终为“ y”)

在表上定义全局二级索引。该索引的键应使用x作为分区键(又称“哈希键”),并将timestamp字段用作排序键。

然后您可以对该索引执行query操作。正是您所需要的“查询结果始终按排序键值进行排序”(请参见here)。

警告:这意味着索引将表的所有记录保存在同一分区键下。这违反了dynamodb的最佳做法(请参阅Choosing the Right DynamoDB Partition Key)。不能用于大型表(超过几十GB)。