[英]Append item to list using AWS AppSync to DynamoDB
這可能是一個愚蠢的問題,但我真的找不到辦法做到這一點。
所以,我有 DynamoDB 表,我在 AppSync api 中有架構。 在表中,對於每一行,都有一個字段,該字段的值是一個列表。 那么如何在不替換現有項目的情況下將多個項目附加到此列表中? 我應該如何編寫該突變的解析器?
這是我的表的屏幕截圖:
您可以看到列表中有多個程序。
我怎么能再附加兩個程序。
這是我的解析器的新屏幕截圖: 解析器的屏幕截圖我想在 UpdateItem 操作中添加存在檢查方法。 但是當前的代碼不起作用。 我想要的邏輯是使用“包含”方法來查看“toBeAddedProgramId”是否已經存在。 但問題是,如何從 User 表中提取當前程序 id 列表,以及如何使程序 id 列表成為“列表”類型(因為 contains 方法只取 String set 和 String)。
我希望這個問題是有道理的。 非常感謝你們。
最好的,哈里森
要將項目附加到列表,您應該使用 DynamoDB UpdateItem
操作。 如果您直接使用 DynamoDB, 這是一個示例
在 AWS AppSync 中,您可以使用 DynamoDB 數據源並在請求映射模板中指定 DynamoDB UpdateItem
操作。
您的UpdateItem
請求模板可能如下所示(修改它以滿足您的需求):
{
"version" : "2017-02-28",
"operation" : "UpdateItem",
"key" : {
"id" : { "S" : "${context.arguments.id}" }
},
"update" : {
"expression" : "SET #progs = list_append(#progs, :vals)",
"expressionNames": {
"#progs" : "programs"
},
"expressionValues": {
":vals" : {
"L": [
{ "M" : { "id": { "S": "49f2c...." }}},
{ "M" : { "id": { "S": "931db...." }}}
]
}
}
}
}
如果您有興趣了解更多信息, 我們在這里有一個教程,其中包含更多詳細信息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.