3

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

{
  "details": {
    "01": {
      "a": {
        "count": [10, 5]
      },
      "b": {
        "count": [10, 5]
      }
    }
  },
  "time": "2020_06"
}

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

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'
}

如果 id 的结果已经存在,那很好。但如果没有,我会收到一条错误消息

ValidationException: The document path provided in the update expression is invalid for update

如何让地图在更新数据之前构建好?我曾尝试使用SET if_not_exists(),但它会与我真正想要更新的路径重叠(计数数组)

4

0 回答 0