如何从 AWS Amplify GraphQL API 删除多条记录?

Jos*_*osh 1 aws-amplify

我在 AWS Amplify React Native 应用程序中创建了 GraphQL API。API 包含模型Transaction。AWS Amplify 提供开箱即用的 CRUD 操作,我可以毫无问题地删除单个事务。

但是,我想删除所有符合特定条件的交易。如何使用此堆栈(AWS Amplify + GraphQL API、React Native)删除多个事务?

小智 7

您可以发送 1 个带有批量删除突变的请求。

用于listTransaction获取过滤的交易。

const txnMutation: any = transactions.map((txn, i) => {
  return `mutation${i}: deleteTransaction(input: {id: "${txn.id}"}) { id }`;
});

await API.graphql(
  graphqlOperation(`
  mutation batchMutation {
    ${txnMutation}
  }
`)
);

Run Code Online (Sandbox Code Playgroud)
import { API, graphqlOperation } from "aws-amplify";
Run Code Online (Sandbox Code Playgroud)

  • 我想我现在明白了。我没有在后端创建任何自定义解析器。我也是 GraphQL 的新手,但我的理解是多个突变串联运行,多个查询并行运行。这将从前端到后端一次性触发多个删除突变,但后端将串行执行它们。如果我想真正一次性从支持的 DynamoDB 实例中删除它们,我将需要某种带有 DynamoDB DELETE 语句的自定义解析器,或者任何 NoSQL 领域中的内容。 (2认同)