0
node.js를 통해 AWS DynamoDB 내의 기존 항목을 업데이트하고 싶습니다. 업데이트하려는 항목의 보조 색인 값만 있습니다. 기본 색인에 액세스 할 수 없습니다 ...GSI를 통해 DynamoDB 항목 업데이트
Id: primary index
CallId: global secondary index
CallStatus: normal field
(키를 사용하지 않고) CallId를 사용하여 CallStatus를 업데이트하려고합니다.
내가 좋아하는 다른 접근 시도 : 항목에 대한
- 검사를 한 후 GSI에 의해 인출 된 기본 키
- 쿼리와 업데이트 한 다음
- 조건부 갱신
를 업데이트하지만이의 없음 방법이 나를 위해 일했다. 내가 제대로 사용하지 않을 것이기 때문에 나는 생각한다. 어떤 도움을 주셔서 감사합니다 :-).
var docClient = new aws.DynamoDB.DocumentClient();
var params = {
TableName: 'myTable',
FilterExpression: 'CallId = :c',
ExpressionAttributeValues: {
':c': callSid
}
};
docClient.scan(params, function (err, result) {
if (err) {
console.error("Unable to query item. Error JSON:", JSON.stringify(err));
} else {
console.log(result);
// Update call status
var params = {
TableName: "myTable",
Key: {
"Id": result.Items[0].Id
},
UpdateExpression: "set CallStatus = :s",
ExpressionAttributeValues: {
":s": callStatus
},
ReturnValues: "UPDATED_NEW"
};
docClient.update(params, function (err, data) {
if (err) {
console.error("Unable to update item. Error JSON:", JSON.stringify(err));
} else {
console.log("Update item succeeded:", JSON.stringify(data));
}
});
}
});
어떤 오류가 있습니까? '핵심 : 기본 색인'은 무엇을 의미합니까? 파티션 키 속성 이름은 "Key"또는 "Id"입니까? – notionquest
@notionquest 안타깝게도 오류 메시지가 없습니다. 기본 키의 이름은 Id입니다. 위의 질문에서 변경했습니다. – Tobias