无法更新DynamoDB中的项目

use*_*152 8 node.js amazon-dynamodb

我一直试图弄清楚如何更新dynamoDB中的项目,但没有取得任何成功.

我知道如何添加和设置和删除项目但不更新.

这是我的代码:

dynamoDB.updateItem({
    "TableName": "mytable",
    "Key": {
        "thing_ID": {"S": "0000"}
    },
    "UpdateExpression": "SET",
    "ExpressionAttributeNames": {
        "SessionID": ""
    },
    "ExpressionAttributeValues": {
        "SessionID": {
            "S": "maybe this works",
        }
    }
})
Run Code Online (Sandbox Code Playgroud)

mko*_*bit 12

看起来您正在尝试使用表达式更新项目,在这种情况下,您的UpdateExpression内容不正确.无论是ExpressionAttributeNamesExpressionAttributeValues用于占位符代替你的表达.

如果您想为项目设置属性,我认为您的代码看起来像这样:

dynamoDB.updateItem({  
    "TableName" : "exampleTable",
    "Key" : {
        "hashAttributeName" : {
            "S" : "thing_ID"
        }
    },
    "UpdateExpression" : "SET #attrName =:attrValue",
    "ExpressionAttributeNames" : {
        "#attrName" : "SessionID"
    },
    "ExpressionAttributeValues" : {
        ":attrValue" : {
            "S" : "maybe this works"
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

这将更新一个如下所示的项:

{  
    "Item":{  
        "hashAttributeName":"thing_ID"
    }
}
Run Code Online (Sandbox Code Playgroud)

对此:

{  
    "Item":{  
        "hashAttributeName" : "thing_ID",
        "SessionID" : "maybe this works"
    }
}
Run Code Online (Sandbox Code Playgroud)