我的表结构如下,其中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 …