0

我在 DynamoDB 中有一个表,我需要更新其中的所有项目。每个项目都有一个键和多个带有布尔值的列。它看起来有点像这样:

钥匙 布尔值 布尔二
关键一 真的 真的
关键二 真的 错误的
关键三 真的 错误的

我有很多这样的项目(太多了,无法手动复制所有键以在批处理执行语句中创建单独的语句),但我找不到一种方法来迭代所有应符合以下条件的项目WHERE 子句:BooleanTwo = false。

如何执行批处理执行语句来更新所有必须执行的项目,BooleanTwo = falseBooleanTwo = true无需手动输入表中的所有键?

通常,如果项目数量很少,我会这样做:

[    
    {
        "Statement": "UPDATE MyTable SET BooleanTwo=true where Key=key-two"
    },
    {
        "Statement": "UPDATE MyTable SET BooleanTwo=true where Key=key-three"
    }
]

我想做这样的事情:

"Statement": "UPDATE MyTable SET BooleanTwo=true where BooleanTwo=false"

我怎样才能做到这一点?

4

1 回答 1

0

DynamoDB 中无法通过仅提供一个简短的声明性命令来指定要更新的项目的标准来进行大规模更新。

鉴于您拥有此架构,您需要使用过滤器进行扫描并发出批量写入调用。它不必完全是手动的(无需人工输入键),但这将是一个大循环。您可以进行并行扫描以使其更快。

于 2022-01-19T03:06:50.407 回答