我有以下结构的dynamodb表:在Dynamodb表重复删除的项目值
{
accountId: string,//PRIMARY KEY
userId: string,//SORT KEY
email: string,
dateCreated: number // timestamp
}
我想执行删除与除了一个从表中重复的电子邮件的所有项目的操作最早的dateCreated属性。
在DynamoDB中可以执行此操作吗?
感谢
我有以下结构的dynamodb表:在Dynamodb表重复删除的项目值
{
accountId: string,//PRIMARY KEY
userId: string,//SORT KEY
email: string,
dateCreated: number // timestamp
}
我想执行删除与除了一个从表中重复的电子邮件的所有项目的操作最早的dateCreated属性。
在DynamoDB中可以执行此操作吗?
感谢
首先,您需要同时分区和排序键从DynamoDB删除一个项目。除非您知道accountId
和userId
,否则无法执行删除项目操作。
在上述用例中,email
和dateCreated
属性都不是关键属性的一部分。
此外,排序功能仅适用于排序关键属性。
方法1: -
首选之一,如果它是一个一次活动
dateCreated
旧值accountId
和userId
方法2: -
优选的,如果它经常需要
与散列密钥作为email
和排序关键字作为dateCreated
假设您知道要查询的电子邮件ID并确定它是否有重复项,可以使用带有索引的查询API名称,电子邮件ID值和ScanIndexForward
值为假(即,降序)
结果集的电子邮件ID将在最上方有最新记录。您可以忽略顶部记录并针对其余项目运行删除API和accountId
和userId
。
方法3: -
首选的方法,如果数据能够在平面文件管理和运行一些程序,找出重复
方法4: -
首选的方法,如果该数据是大
注: -
请注意,如果你期待像SQL与子查询来识别最新更新的记录,并删除其余,这是上DynamoDB
不可能