[英]Update Dynamo db table using react
我有一個 dynamodb 表,列為 id(分區鍵)和日期。 我正在嘗試更新 id=2 的日期,但我得到以下錯誤作為響應:
message: "The provided key element does not match the schema"
__type: "com.amazon.coral.validate#ValidationException"
下面是我的代碼:
import * as AWS from 'aws-sdk'
AWS.config.update({
region: 'us-east-1',
accessKeyId: 'MY_ACCESS_KEY',
secretAccessKey: 'MY_SECRET_KEY'
});
const docClient = new AWS.DynamoDB.DocumentClient()
export const updateData = (tableName : any, id : any, date : any) => {
let params = {
TableName: tableName,
Key:{
"id": id
},
UpdateExpression: `set date = :date`,
ExpressionAttributeValues: {":date": date},
};
docClient.update(params, function(err, data) {
if (!err) {
console.log(data);
}else{
console.log(err)
}
})
}
我這樣打電話給 function:
updateData("mytable","2","2023-01-10")
我有人確認我在這里做錯了什么嗎?
date
是DynamoDB 中的保留關鍵字
您需要使用ExpressionAttributeNames
參數:
let params = {
TableName: tableName,
Key:{
"id": id
},
UpdateExpression: `set #date = :date`,
ExpressionAttributeValues: {":date": date},
ExpressionAttributeNames: {"#date":"date"}
};
至於例外情況,請確保您的表分區鍵為id
且類型為 String,並且該表沒有排序鍵,否則您還需要添加排序鍵。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.