如何使用 CLI 更新 AWS DynamoDB 中的嵌套项
How to update a nested item in AWS DynamoDB with CLI
在我的一个 AWS DynamoDB table 中,我有几个项目需要在管道中进行更新。
以下 json 显示 AWS DynamoDB table 中的一个项目:
{
"DeploymentConfigs": {
"L": [
{
"M": {
"Config": {
"M": {
"Name": {
"S": "batch-komo"
},
"Replicas": {
"N": "3"
}
}
}
}
},
{
"M": {
"Config": {
"M": {
"Name": {
"S": "online-komo"
},
"Replicas": {
"N": "3"
}
}
}
}
}
]
},
"environment": {
"S": "komo-claimcenter"
}
}
如何更新 DeploymentConfigs
中的对象?
主分区键是 environment
.
例如对象
{
"M": {
"Config": {
"M": {
"Name": {
"S": "batch-komo"
},
"Replicas": {
"N": "3"
}
}
}
}
}
将更新为
{
"M": {
"Config": {
"M": {
"Name": {
"S": "batch-komo"
},
"Replicas": {
"N": "5"
}
}
}
}
}
不知道在AWS CLI中实现。
要更新项目内的嵌套部分,请使用带有属性路径的 UpdateExpression
。例如,SET DeploymentConfigs[0].Config.Replicas = :val
.
然而,问题在于您的顶级属性 DeploymentConfigs
是一个列表,因此要修改其中的一项,您需要知道索引(在本例中为 0)。如果你不知道你有问题的索引 - 没有办法“修改具有名称= 'batch-komo'的列表项”或类似的东西......如果你需要做这样的事情,你必须读取整个顶级属性,在客户端中对其进行修改,然后将其写回(或者只是小的更改,现在您知道了索引)。
在我的一个 AWS DynamoDB table 中,我有几个项目需要在管道中进行更新。 以下 json 显示 AWS DynamoDB table 中的一个项目:
{
"DeploymentConfigs": {
"L": [
{
"M": {
"Config": {
"M": {
"Name": {
"S": "batch-komo"
},
"Replicas": {
"N": "3"
}
}
}
}
},
{
"M": {
"Config": {
"M": {
"Name": {
"S": "online-komo"
},
"Replicas": {
"N": "3"
}
}
}
}
}
]
},
"environment": {
"S": "komo-claimcenter"
}
}
如何更新 DeploymentConfigs
中的对象?
主分区键是 environment
.
例如对象
{
"M": {
"Config": {
"M": {
"Name": {
"S": "batch-komo"
},
"Replicas": {
"N": "3"
}
}
}
}
}
将更新为
{
"M": {
"Config": {
"M": {
"Name": {
"S": "batch-komo"
},
"Replicas": {
"N": "5"
}
}
}
}
}
不知道在AWS CLI中实现。
要更新项目内的嵌套部分,请使用带有属性路径的 UpdateExpression
。例如,SET DeploymentConfigs[0].Config.Replicas = :val
.
然而,问题在于您的顶级属性 DeploymentConfigs
是一个列表,因此要修改其中的一项,您需要知道索引(在本例中为 0)。如果你不知道你有问题的索引 - 没有办法“修改具有名称= 'batch-komo'的列表项”或类似的东西......如果你需要做这样的事情,你必须读取整个顶级属性,在客户端中对其进行修改,然后将其写回(或者只是小的更改,现在您知道了索引)。