nodejs expressアプリケーションでdynamodbを使用していて、空のリストだけのフィールドを持つ特定のテーブルがあり、リストに文字列を追加したい。dynamodbテーブルのリストに文字列を追加する
テーブル名は「dev_entrants」とここでは、テーブルの一例です。だから私はポスト要求して、急行を通るルートにそれを受け取り、それが後に型チェックを行う機能に来る
----------------------------------------
primary Key Sort Key
eventID | eventType | entrants
----------------------------------------
Qual-919-w5wm1xhnw | Qual | []
----------------------------------------
そして私は私のテーブルにコンテンツを追加しようとするものすべて:
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