【问题标题】:Need advices on multiple query Amplify QraphQL需要关于多个查询的建议 Amplify GraphQL
【发布时间】:2022-01-07 15:44:26
【问题描述】:

我正在使用 AWS Amplify 开发应用程序。 我正在使用 Graphql API 来管理我的 Dynamodb 表。

我需要一些建议来了解改变表中多个项目的最佳方法。 我读到 Qraphql 和 dynamodb 能够每秒改变 1000 个项目,但实际上这种性能对我的方式不起作用:(。

要改变多个项目,我有一个包含所有查询和输入参数的数组,并且我正在使用 Promise.all 函数,例如:

await Promise.all(
  options.data.map(  item => 
     API.graphql(
       graphqlOperation(
          item.query, 
          { input: item.input }
       )
     )
   )
);

这是这样做的好方法吗?它正在工作,但有 1000 个项目需要 4/5 秒。 您能否建议我如何使用 Amplify graphQl API 提高多项突变的性能? 非常感谢

【问题讨论】:

    标签: api graphql mutation amplify


    【解决方案1】:

    尝试使用 1 个请求发送所有查询或突变,而不是多次使用 API.graphql

    例如,当我删除帖子时,我如何删除帖子的 cmets。

    const commentMutations: any = comments.map(
      (comment: Comment, i: number) => {
        return `mutation${i}: deleteComment(input: {id: "${comment.id}"}) { id }`;
      }
    );
    
    await API.graphql(
      graphqlOperation(`
      mutation deletePostComments {
        ${commentMutations}
      }
    `)
    );
    

    【讨论】:

    • 嗨 LuckyTuvshee,非常感谢您的回答,看起来不错。在 const 中准备所有查询并在 graphql api 中使用一次非常好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-07
    相关资源
    最近更新 更多