Zal*_*ali 6 amazon-web-services amazon-dynamodb aws-lambda
我是 AWS DynamoDB 的新手,需要这里专家的指导。
我正在创建一个应用程序,该应用程序将显示一个事件列表,条件是事件日期必须大于今天日期,并按事件日期降序排列。我的表架构如下:
分区键 = eventid
排序键 = 事件日期
如果我使用关系数据库,我可以使用“SELECT * FROM events where eventdate > todaydate ORDERBY eventdate DESC”,但是我想如何使用 AWS DynamoDB 实现这一点?我希望使用 QUERY 而不是 SCAN。
不幸的是,您无法使用查询 API 实现上述用例。
理由:-
您需要大于比较运算符。非相等比较运算符可以使用FilterExpression
或 在排序键属性上使用KeyConditionExpression
。
在上面的用例中,您没有eventId
,因此无法使用
KeyConditionExpression
。即使您使用eventDate
哈希键创建 GSI,也不能在哈希键上使用非等式运算符,并且除了排序键之外的任何属性都无法进行排序。因此,使用GSI选项无法达到排序要求。
针对上述用例使用查询 API 的解决方案:-
创建一个 GSI,其哈希键为eventDate
使用 Query API 查询索引eventDate
eventDate
在客户端对数据进行排序。大多数编程语言都有良好的排序 API。您可以在客户端轻松实现这一点
笔记:-
归档时间: |
|
查看次数: |
10229 次 |
最近记录: |