【问题标题】: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。
    猜你喜欢
    • 1970-01-01
    • 2011-11-02
    • 2022-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多