【问题标题】:How to delete all items that satisfies certain condition in AWS amplify?如何删除 AWS 放大中满足特定条件的所有项目?
【发布时间】:2021-12-20 04:34:22
【问题描述】:
我正在使用 AWS amplify 开发一个 Web 应用程序。
我想使用如下查询删除满足特定条件的多个项目:
mutation delete {
deletePostTag(condition: {title: {eq: "Hello"}}) {
id
}
}
但是,尝试在 AWS AppSync 控制台上运行上述查询后,它抱怨缺少 input 字段,但不幸的是 input 只接受 id。
amplify cli生成的resolver好像不支持一次删除多个项目。
我必须实现自定义解析器吗?
【问题讨论】:
标签:
amazon-web-services
aws-amplify
aws-appsync
【解决方案1】:
您可以批量删除多个项目。下面的示例并阅读更多here。
架构:
type Mutation {
batchDelete(ids: [ID]): [Post]
}
查询:
mutation delete {
batchDelete(ids:[1,2]){ id }
}
不能 100% 确定此处是否支持条件,但希望您可以对其进行测试。如果我怀疑它们不受支持,那么只需发出具有相同条件的查询来检索匹配项,然后将生成的项键数组提供给 batchDelete。
【讨论】:
-
感谢您回答我的问题。我发现根据this 的帖子,根据 DynamoDB 的性质,您需要提供分区键来删除项目。所以我能做的大概就是先查询满足一定条件的item,然后使用结果的partition key批量或者一个一个的删除item。