小编Hay*_*ate的帖子

当嵌套路径不存在时 DynamoDB 更新失败

我的表结构如下,其中time唯一键是唯一键,“01”是计数的 id,一个月的项目将在任何 id 获得该月的计数结果后立即创建。

{
  "details": {
    "01": {
      "a": {
        "count": [10, 5]
      },
      "b": {
        "count": [10, 5]
      }
    }
  },
  "time": "2020_06"
}
Run Code Online (Sandbox Code Playgroud)

我使用更新函数来保存计数结果:

var params = {
  TableName: tableName,
  Key: { time },
  UpdateExpression: `ADD details.#id.#type.count[0] :count0, details.#id.#type.count[1] :count1`,
  ExpressionAttributeNames: {
    '#id': id,
    '#type': type
  },
  ExpressionAttributeValues: {
    ':count0': count[0],
    ':count1': count[1]
  },
  ReturnValues: 'ALL_NEW'
}
Run Code Online (Sandbox Code Playgroud)

如果 id 的结果已经存在那就没问题了。但如果没有,我会收到一个错误消息

ValidationException: The document path provided in the update expression is invalid for update
Run Code Online (Sandbox Code Playgroud)

如何让地图先构建好再更新数据?我曾尝试使用SET …

javascript amazon-dynamodb dynamodb-queries documentclient

6
推荐指数
1
解决办法
896
查看次数