Nodejs 및 DynamoDB를 백엔드로 사용하여 API를 생성하고 있습니다. 한 세트의 "친구"를 추가하기 위해 항목을 업데이트하려고합니다. 사용자를 업데이트하면 "유효하지 않은 UpdateExpression : 연산자 또는 함수에 대한 잘못된 피연산자 유형, 연산자 : ADD, 피연산자 유형 : MAP"오류가 발생합니다. 내 이해는 존재하지 않는 세트에 추가 할 때 세트가 작성된다는 것입니다. 이미 존재하는 경우 새 값을 집합에 추가해야합니다. 내가 추가하려고 시도하는 설정이지도로 읽히는 이유를 이해할 수 없습니다. 사용자가 생성되는 방법AWS DynamoDB 세트 - 잘못된 피연산자에 추가하려고 시도합니다.
은 :
var params = {
TableName: "users",
Item:{
"id": Number(id),
"name": name,
"password": password
}
};
documentClient.put(params, function(err, data) {
if(err)
res.json(500, err);
else
res.json(200, data);
});
친구 추가 방법 :
var params = {
TableName: "users",
Key: {
"id": id
},
UpdateExpression: "ADD friends :friendId",
ExpressionAttributeValues: {
":friendId": { "NS": [friendId] }
},
ReturnValues: "UPDATED_NEW"
};
documentClient.update(params, function(err, data) {
if(err)
res.json(500, err);
else
res.json(200, data);
});
오류없이 실행되지만, 원하는 동작이 아닙니다. SET를 다시 실행하면 이전 입력을 바꿉니다. 이전 데이터를 유지하면서 새 입력을 집합에 추가하려고합니다. 나는 원하는 행동을 명확하게하기 위해 질문을 개정 할 것이다. –
ADD 작업에 문제가있는 것 같습니다. API 자체에 문제가있는 것 같습니다. – notionquest