0

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

所以,这是我的例子:

这是用户类型: 用户类型

这是 dynamodb 的样子: dynamodb item

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

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

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

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

4

1 回答 1

0

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

{
   "version" : "2017-02-28",
   "operation" : "PutItem",
   "key" : {
      "id" : { "S" : "1" }
   },
   "condition" : {
      "expression" : "attribute_not_exists(programId)"
   }
}
于 2018-07-02T23:01:00.523 回答