aws-lambda - DyanamoDB 与 AWS Lambda 函数 Order by Desc Order with scan
问题描述
我正在尝试使用 Node.js 创建 AWS Lambda 函数并尝试从 dynamodb 扫描记录。但它以随机顺序给我记录我想获取最近添加到表中的前 5 条记录。我想根据时间戳进行排序,这样可以获得最新的 5 条记录。任何人有一个想法请帮助我。
解决方案
dynamodb 不打算在其扫描操作中支持排序。查询操作支持顺序。
要获得您想要的行为,您可以执行以下操作(有一个警告,见下文):
确保表上的每条记录都有一个属性(我们称之为它x
),它始终具有相同的值(无论哪个值,假设该值始终为“y”)
在你的表上定义一个全局二级索引。该索引的键应用x
作分区键(又名:“哈希键”),时间戳字段应用作排序键。
query
然后您可以对该索引发出操作。“查询结果始终按排序键值排序”(请参阅此处),这正是您所需要的。
警告:这意味着您的索引将在同一分区键下保存表的所有记录。这违背了 dynamodb 的最佳实践(请参阅选择正确的 DynamoDB 分区键)。它不适用于大型表(超过数十 GB)。
推荐阅读
- javascript - Highcharts:类别定位以匹配日期时间列
- laravel-5 - 如果多于一个,如何搜索收藏?
- php - 如何使用 php 文件作为数组,而不是 Laravel 5 中的类?
- microsoft-translator - 如何处理 MS Hub 字典文件中源术语的多个目标翻译
- python - 从正在导入的模块中获取变量
- excel - 如何在 VBA 中调暗和设置变量工作簿名称?
- php - 文件不会使用 Imagick 保存
- javascript - 如何使用 Firebase 的 Dialogflow Fulfillment 获取数据
- r - 在没有 Internet 连接的情况下在 R 中安装包并具有所有依赖项
- javascript - TypeError:某事不是函数