簡體   English   中英

使用 AWS AppSync 將項目附加到 DynamoDB 列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM