【问题标题】:AWS AppSync add multiple children into one parent attribute with existence check resolverAWS AppSync 使用存在检查解析程序将多个子项添加到一个父属性中
【发布时间】:2023-04-04 00:23:01
【问题描述】:

我对 AWS AppSync 有疑问。我想知道是否有一种方法可以在将多个值添加到父级的一个属性中时检查存在。

所以,这是我的例子:

这是用户类型: User type

下面是 dynamodb 的样子: dynamodb item

这就是我想要完成的:将三个程序添加到用户记录中,在程序属性下。 the addProgramToUser mutation

这是我当前的解析器: the addProgramToUser resolver

所以我的逻辑是先从 dynamodb 中提取现有程序,然后检查“待添加”程序 ID 是否在其中。如果有,请停止更新或跳过该程序 ID。如果没有,请继续更新。所以问题是,如何使用 VTL 提取当前数据,以及如何比较现有数据和我要添加的数据。

或者,如果有人对我如何完成这项任务有其他想法,请提供帮助。非常感谢。我无法嵌入图片,因为我是 stackoverflow 的新手。很抱歉给您带来不便。祝你有美好的一天。

【问题讨论】:

    标签: aws-lambda amazon-dynamodb aws-appsync vtl


    【解决方案1】:

    您似乎可以为解析器的请求映射模板使用条件。条件表达式可让您根据执行操作之前 DynamoDB 中已有对象的状态,告诉 AWS AppSync 和 DynamoDB 请求是否应该成功。例如,在您的情况下,如果 Dynamo 中已经没有程序 ID,您只希望 UpdateItem 请求成功。

    {
       "version" : "2017-02-28",
       "operation" : "PutItem",
       "key" : {
          "id" : { "S" : "1" }
       },
       "condition" : {
          "expression" : "attribute_not_exists(programId)"
       }
    }
    

    【讨论】:

    • 非常感谢 Lonut。抱歉耽搁了。我确实尝试了“attribute_not_exists(programId)”,但它没有用。对于我的情况,我添加了多个 programId。我不知道这个条件表达式是否仍然有效。
    猜你喜欢
    • 2019-12-02
    • 2018-06-29
    • 2021-05-02
    • 2021-12-03
    • 2018-12-15
    • 2019-03-01
    • 2021-12-27
    • 2020-04-12
    • 2021-04-04
    相关资源
    最近更新 更多