如何在 Dynamodb 中使用嵌套字段作为 TTL 字段?

Zha*_* Yi 0 amazon-web-services amazon-dynamodb

我正在阅读https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/TTL.html以在 Dynamodb 表上添加 TTL 字段。但我找不到它如何支持嵌套字段作为 TTL 字段。例如,

id: xxx
user: { firstName: '', lastName:'', age: ''}
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,我如何使用user -> age作为 ttl 字段?

ms1*_*s12 6

首先,字符串不能用于 TTL。如果您尝试这样做,它将被忽略,根据文档

\n
\n

TTL 属性\xe2\x80\x99s 值必须是数字数据类型。例如,如果您指定表使用属性名称 expdate 作为 TTL 属性,但某个项目的属性是字符串数据类型,则 TTL 进程会忽略该项目。

\n
\n

同样来自同一文档页面:

\n
\n

TTL 属性\xe2\x80\x99s 值必须是 Unix 纪元时间格式(以秒为单位)的时间戳。如果您使用任何其他格式,TTL 进程会忽略该项目。例如,如果您将该属性的值设置为 1645119622,即 2022 年 2 月 17 日星期四 17:40:22 (GMT),则该项目将在该时间之后过期。

\n
\n

我提到这一点是因为我的印象是您希望以某种方式使用用户的年龄作为 TTL,而这不是时间戳值。

\n

而且,正如 @jarmod 在评论中所说,它必须是顶级属性。您必须提取该值并将其添加到 TTL 列(无论它是什么),以数字格式时间戳值(以未来秒为单位)。

\n