我的表结构在下面,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()
,但它会与我真正想要更新的路径重叠(计数数组)