DynamoDB更新对象数组(nodejs)

时间:2017-08-20 15:54:28

标签: node.js amazon-web-services amazon-dynamodb

我注意到DynamoDB可以添加和删除数组中的项目但是如果要专门更新该项目,如何搜索对象内的特定项目? 例如: 在MongoDB中,您可以搜索someitem。$。subitem并更新该特定项目。 有没有办法如何使用DynamoDB执行此操作?

Item: {
  someitem: [
    {
      subitem: "id",
      somevalue: "something"
    }
  ]
}

我会说这是基本功能,但似乎不容易找到(甚至不支持)

2 个答案:

答案 0 :(得分:1)

AWS不允许在单个更新请求中修改它在以下答案中找到更多信息: updating-a-json-array-in-aws-dynamodb

他们建议的解决方案是将模式从数组更改为 {} ,或实现自定义函数并遍历每个数组并找到要更新的新ID,以便以编程方式说话更新你的json,然后插入整个对象。

答案 1 :(得分:0)

TableName : 'tablename', 
Key : { id: id}, 
ReturnValues : 'ALL_NEW',
UpdateExpression : 'set someitem['+`index`+'].somevalue = :reply_content', 
ExpressionAttributeValues : { ':reply_content' : updateddata }

通过数组索引编辑数组元素