python-3.x - 如何使用 boto3 从 dynamodb 获取最后插入的项目?
问题描述
我的 dynamodb 中有以下项目
entry timestamp status key
ent1 Fri Dec 04 11:26:17 EST 2020 Success 101
ent2 Fri Dec 04 11:26:18 EST 2020 Failure 102
ent3 Fri Dec 04 11:26:19 EST 2020 Success 101
在这里我只需要获取最后插入的状态 = Success,即基于最新的时间戳-ent3
#预期的
ent3 Fri Dec 04 11:26:19 EST 2020 Success 101
使用以下代码时我没有看到结果返回
response=table.query(KeyConditionExpression= Key('key').eq('101'),
FilterExpression=Attr('status').eq('Success'))
那么如何从数据库中过滤/获取最后插入的项目?
谢谢
解决方案
您可以添加一个全局二级索引(GSI)status
作为分区键和timestamp
排序键,然后查询该 GSILimit=1
以获取具有最新时间戳的项目。ScanIndexForward=false
如果您想要最早的时间戳,请添加到您的查询中。
推荐阅读
- powershell - 未找到可用版本的 libssl 已中止(核心转储)(ubuntu 21.04 上的 Powershell)
- mysql - 如何在sql中按其他列中的值过滤列中的值
- java - selenium + java - 如何下载pdf并以不同的名称保存?
- bash - 在 Bash 中比较字符串
- python - 熊猫将更新的值与时间条件合并
- c3.js - data.labels.format 中使用的 c3.js 格式化程序函数的第四个参数是什么?
- d3.js - DC js如何创建印度地图状态级别
- javascript - JavaScript 中的 Onkeypress 事件
- c# - 将旧系统(On-Primise 2016)中特定表的记录同步到新系统(在线CRM)
- flutter - 如何减少 ListView.separated 项目的宽度?扑