0
所以我一直在使用dynamodb在nodejs express应用程序中,并且我有一个特定的表,其中有一个只是空列表的字段,我想将一个字符串附加到列表中。将字符串添加到dynamodb表中的列表中
表名是“dev_entrants”这里是表的一个例子:
----------------------------------------
primary Key Sort Key
eventID | eventType | entrants
----------------------------------------
Qual-919-w5wm1xhnw | Qual | []
----------------------------------------
所以,我收到一个POST请求,然后将其路由通过快递和它在那里做类型检查后,来到一个功能和所有我尝试添加的东西到我的表:
import AWS from 'aws-sdk';
const docClient = new AWS.DynamoDB.DocumentClient({region: 'us-west-1'});
const db = {
docClient
};
...
const entrantsParams = {
'TableName' : 'dev_entrants',
'Key': {
'eventID' : 'Qual-919-w5wm1xhnw',
},
'UpdateExpression' : "SET #attrName = list_append(#attrName, :attrValue)",
'ExpressionAttributeNames' : {
'#attrName' : 'entrants'
},
'ExpressionAttributeValues' : {
':attrValue' : ['joe'],
}
};
const updateEntrantsPromise = db.docClient.update(entrantsParams).promise();
(与它们所代表的字符串对于这个例子的目的,我已经取代变量)
我花了6个小时左右阅读了不同的文档,以及堆栈溢出试图找到答案。
我得到的当前错误是提供的键元素与模式不匹配。如果我删除attrValue的括号,那么我得到错误的操作数类型。我知道表中存在关键字,因为我从那里复制并粘贴了它。此外,我成功地从另一个功能添加到表中的东西,所以我的连接工作正常。任何人都可以请帮我吗?
非常感谢!我正在浏览文档,从未看到有关此的说明。这实际上很棒,因为它实际上解决了我在if_not_exists的另一个更新中遇到的下一个问题! – Pljeskavica