我将用户帐户存储在DynamoDB中:
{
email: 'user1@xxx.com',
expires: 1548807053247,
}
我的哈希键是email
字段。
我想添加一个日常计划任务,它将为所有即将过期的帐户(在接下来的14天内)发送一封提醒电子邮件。
为此,我需要仅在expires
字段上进行查询-不使用哈希键。
我假设我需要在该字段上定义一个二级索引(可能是全局索引,而不是局部索引?),但是我不确定如何为它编写适当的查询。
我正在使用AWS.DynamoDB.DocumentClient来访问表格,谢谢!
答案 0 :(得分:3)
在调用查询API时,只需指定TableName之外的IndexName。 (Docs。)其余部分与查询表相同。
答案 1 :(得分:1)
我经常遇到相同的问题
我要做的是,添加另一个名为“ all”的属性,其值为1
(您可以使用任何键/值)
然后创建一个GSI
要进行一些优化,您只能将此属性添加到活动用户
或者您可以添加属性活动编号,并将其用作GSI的分区键
这是效率很低的分区键分配
因为所有项目都属于一个分区
但我发现没有其他办法
我很高兴听到另一种解决方案