gpt4 book ai didi

javascript - 在 javascript 中更新 DynamoDB 中包含连字符或破折号 (-) 的属性

转载 作者:数据小太阳 更新时间:2023-10-29 05:07:16 25 4
gpt4 key购买 nike


在 dynamoDB 中,我有一个表,其中包含用连字符连接的属性。 (例如名字)

现在我想使用 javascript 更新它们。到目前为止,这是我的代码:

//create UpdateExpression and ExpressionAttributeValues
let updateExpression = "set ";
let expressionAttributeValues ={};
if (e.firstName !== null){
updateExpression = updateExpression + " "+ 'first-name'+" = :f,";
expressionAttributeValues[":f"] = e.firstName;
}

let table = "tableName";
let bpNumber = e.bpNumber;
let params = {
TableName: table,
Key: {
"bpNumber": bpNumber
},
UpdateExpression: updateExpression,
ExpressionAttributeValues: expressionAttributeValues,
ReturnValues:"UPDATED_NEW"

};

console.log("Updating the item...");
docClient.update(params, function(err, data) {
if (err) {
console.error("Unable to update item. Error JSON:", JSON.stringify(err, null, 2));
} else {
console.log("UpdateItem succeeded:", JSON.stringify(data, null, 2));
}
});

但是这会给我带来这个错误:

Unable to update item. Error JSON: {
"message": "Invalid UpdateExpression: Syntax error; token: \"-\", near: \"first-name\""

有什么办法解决这个问题吗?
感谢您的帮助:)

最佳答案

当您使用包含保留字、空格或特殊字符的属性时,您必须使用占位符。看看documentation .

updateExpression 中,您可以使用 #fn 占位符代替 first-name,然后定义 ExpressionAttributeNames:

ExpressionAttributeNames: {
"#fn":"first-name"
}

关于javascript - 在 javascript 中更新 DynamoDB 中包含连字符或破折号 (-) 的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39348520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com