我在dynamodb上有一个条目寄存器,其结构如下:
{
"OwnerID":"12312wqeq",
"license":"23423werwegdf",
"MaintenanceList":{
"10-11-2018":{
"garage" : "lopcars",
"city" : "NY",
"country" "USA",
"location" : "1929-1927 Fulton St Brooklyn"
}
}
}
我需要在列表中添加新的维护,我尝试了以下操作:
response=table.update_item(
Key={
"OwnerID":"12312wqeq",
"license":"23423werwegdf",'
}
,UpdateExpression = "SET #d1=:dt",
ExpressionAttributeValues = {
':dt' : "12-11-2019":{
"garage" : "Crazycars",
"city" : "NY",
"country" "USA",
"location" : "120 E Suffolk Ave Central Islip"
}
}
},
ExpressionAttributeNames={
'#d1' : 'MaintenanceList'
},
ReturnValues="UPDATED_NEW"
)
但是覆盖属性MaintenanceList,我需要它在更新后看起来像这样:
{
"OwnerID":"12312wqeq",
"license":"23423werwegdf",
"MaintenanceList":{
"10-11-2018":{
"garage" : "lopcars",
"city" : "NY",
"country" "USA",
"location" : "1929-1927 Fulton St Brooklyn"
},
"12-11-2019":{
"garage" : "Crazycars",
"city" : "NY",
"country" "USA",
"location" : "120 E Suffolk Ave Central Islip"
}
}
}
SET MaintenanceList=:dt
表达式确实替换了名为MaintenanceList的属性的值。如果希望该属性的内容是一个哈希表并添加到其中,则需要使用嵌套atribute路径来更新它,如in this DynamoDB documentation所述。例如,执行SET #d1.#date=:dt
之类的操作但是,请注意,将哈希表保留在单个属性的值中是有问题的—它的总大小受到严格限制(限制为400KB),并且每次读取或写入一小部分内容时,您还需要为整个项目大小付费
相关问题 更多 >
编程相关推荐