如何使用CLI更新AWS DynamoDB中的嵌套项



在我的一个AWS DynamoDB表中,有几个项目需要在管道中进行更新。下面的json显示了AWS DynamoDB表中的一个项:

{
"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)。如果你不知道索引,你就有问题了——没有办法"修改列表项目name='batch-komo'"或者类似的事情……如果您需要做这样的事情,您必须读取整个顶级属性,在客户端修改它,然后将它写回来(或者只是很小的更改,现在您知道了索引)。