Я новичок в DynamoDB, и я пытался спроектировать таблицу и сделать некоторые доказательства концепции.Ниже приведена таблица, которую я создал с помощью локального вторичного индекса
var params = {
TableName : "sample",
KeySchema: [
{ AttributeName: "user_id", KeyType: "HASH"},
{ AttributeName: "created_date", KeyType: "RANGE"}
],
AttributeDefinitions: [
{ AttributeName: "user_id", AttributeType: "S" },
{ AttributeName: "created_date", AttributeType: "S" },
{ AttributeName: "video_id", AttributeType: "S" }
],
ProvisionedThroughput: {
ReadCapacityUnits: 5,
WriteCapacityUnits: 5
},
LocalSecondaryIndexes: [{
IndexName: "user_id-video_id-Index",
KeySchema: [
{
AttributeName: "user_id",
KeyType: "HASH"
},
{
AttributeName: "video_id",
KeyType: "RANGE"
}
],
Projection: {
ProjectionType: "ALL"
}
}]
И после этого я вставил два элемента, как показано ниже
Элемент 1:
{
"company": "comapnyname",
"created_date": "02-28-2019",
"email": "randomguy@abc.com",
"first_name": "John",
"last_name": "Doe",
"profile_pic": "https://s3location",
"user_id": "vshdhfb"
}
Элемент 2:
{
"author": "Phil DiMaggio",
"created_date": "02-29-2018",
"description": "This video further introduces the Business Sales compensation plans.",
"likes": "12",
"title": "Understanding Business Sales Compensation Plans",
"user_id": "vshdhfb",
"video_id": "vdhk23so9",
"video_loc": "https://s3.amazonaws.com/videos/video.mp4",
"views": "45"
}
И затем я пытаюсь обновить / удалить второй элемент с кодом ниже, и он выдает мне сообщение «message»: «Один из необходимых ключей не имеет значения»
var params = {
TableName: "sample",
Key:{
"video_id": "vdhk23so9",
"user_id":"vshdhfb"
},
UpdateExpression: "set likes = likes + :val",
ExpressionAttributeValues:{
":val":1
},
ReturnValues:"UPDATED_NEW"
};
docClient.update(params, function(err, data) {
if (err) {
document.getElementById('textarea').innerHTML = "Unable to update like: " + "\n" + JSON.stringify(err, undefined, 2);
} else {
document.getElementById('textarea').innerHTML = "Like video succeeded: " + "\n" + JSON.stringify(data, undefined, 2);
}
});
}
Нужно ли добавить еще один ключ?Чего мне не хватает?