【问题标题】:Can DynamoDB batch delete items that have a specific partition key?DynamoDB 可以批量删除具有特定分区键的项目吗?
【发布时间】:2016-04-21 05:56:44
【问题描述】:
我正在使用 AWS DynamoDB 编写一个 iOS 应用程序。我有一个笔记表,每个笔记都与一个用户 ID 相关联,作为全局二级索引分区键。是否可以批量删除与特定用户 ID 关联的所有笔记?
【问题讨论】:
标签:
ios
amazon-web-services
amazon-dynamodb
aws-sdk
nosql
【解决方案1】:
据我了解,这是您的桌子...
Notes Table: noteID (hash key), userID, [other attributes]
UserNotesGSI: userID (hash key), noteID (range key)
...您问是否有办法删除 UserNotesGSI 中具有相同用户 ID 的所有行。
目前这是不可能的,因为您根本无法从 GSI 中写入/删除项目。 DynamoDB 会根据您对主表 (Notes) 所做的更改为您自动同步 GSI。更多详情here。
如果您查看BatchWriteItem 和DeleteItem 方法,您会注意到您只能指定要从中更新/删除项目的表而不是索引,就像您可以使用Query方法。这进一步支持了我的回答。