首页 > 解决方案 > DyanamoDB 与 AWS Lambda 函数 Order by Desc Order with scan

问题描述

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

标签: aws-lambdaamazon-dynamodb

解决方案


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

要获得您想要的行为,您可以执行以下操作(有一个警告,见下文):

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

在你的表上定义一个全局二级索引。该索引的键应用x作分区键(又名:“哈希键”),时间戳字段应用作排序键。

query然后您可以对该索引发出操作。“查询结果始终按排序键值排序”(请参阅​​此处),这正是您所需要的。

警告:这意味着您的索引将在同一分区键下保存表的所有记录。这违背了 dynamodb 的最佳实践(请参阅选择正确的 DynamoDB 分区键)。它不适用于大型表(超过数十 GB)。


推荐阅读