DynamoDB更新ExpressionAttributeValues

时间:2018-12-11 09:11:13

标签: javascript amazon-web-services

样本测试数据:

"suppliers" : [
  {
    "supplierName": "xxx supplier"
  }, 
  {
    "supplierName": "zzz supplier"
  }
]    

UpdateItem参数的摘录:

ExpressionAttributeValues:{
            ":sA" : {L: [event.suppliers]}
//          ":sA" : {L: event.suppliers}
          }

我遇到“ UnexpectedParameter:在参数中找到了意外的键'0'” 。我尝试更改AttributeValues的格式,但遇到其他错误,例如“ UnexpectedParameter:在参数中找到了意外的键'supplierName'”。

我需要帮助来正确定义列表AttributeValue。请注意,输入的样本测试数据可能包含x个SupplierName对象,因此在AttributeValue中定义键(即“ 0”,“ 1”等)也不是一种选择。我也不想使用UpdateItem的documentClient版本。

1 个答案:

答案 0 :(得分:0)

ExpressionAttributeValues将为更新表达式的参数设置一个值,例如:

dynamoDb.update({
  TableName: ...,
  Key: ...,
  UpdateExpression: 'set suppliers = :suppliers',
  ExpressionAttributeValues: {':suppliers': event.suppliers}
}

您必须提供记录的密钥,然后才能更改suppliers属性。