如何在仅更新特定字段的dynamo db中进行批量更新

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在仅更新特定字段的dynamo db中进行批量更新相关的知识,希望对你有一定的参考价值。

该表包含以下字段:deviceId,userId,key,validity

这是我的批量更新代码

TableWriteItems writeItems = new TableWriteItems(getDevicesTableName(manufacturer, sdkType));

for(int j = i * maxUpdatePerBatch; j < (i + 1) * maxUpdatePerBatch; j++)
{
    JSONObject device = devices.getJSONObject(j);

    writeItems.addItemToPut(new Item().with(Param.DEVICE_ID, device.getString(Param.DEVICE_ID))
                                      .with(Param.VALIDITY, device.getString(Param.VALIDITY)));
}

BatchWriteItemOutcome outcome = db.batchWriteItem(writeItems);

我想要做的只是更新有效性字段,同时保持字段键和userId的值。

但是,当我执行上面的代码时,它似乎更新了有效性,但删除了key和userId字段。

答案

您只能使用batchWriteItem,它相当于putItem,它将表中的整个项目替换为您指定的项目。

您需要为每个项目单独调用updateItem。

以上是关于如何在仅更新特定字段的dynamo db中进行批量更新的主要内容,如果未能解决你的问题,请参考以下文章