如何将嵌套字段设置为Amazon DynamoDB的TTL字段?
Amazon DynamoDB TTL嵌套字段配置问题
DynamoDB的TTL功能不支持直接将嵌套字段(比如示例中的user.age)设置为TTL属性。根据官方规范,TTL字段必须是表中的顶层属性,且类型必须为Number(存储Unix时间戳,单位为秒)。
解决办法
- 手动同步顶层字段:在表中新增一个顶层TTL字段(比如
ttl_timestamp),写入或更新数据时,将user.age的时间戳值同步到这个顶层字段中。配置TTL时选择该顶层字段即可。
修改后的数据结构示例:id: xxx user: { firstName: '', lastName:'', age: 1719888000} ttl_timestamp: 1719888000 - 自动同步(推荐):使用DynamoDB Streams搭配Lambda函数,当数据写入或更新时,自动提取嵌套字段
user.age的时间戳值,写入到顶层TTL字段中,确保两者值始终一致。
内容的提问来源于stack exchange,提问作者Joey Yi Zhao
相关产品推荐
相关产品推荐

