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

时间:2018-10-16 09:28:39

标签: amazon-dynamodb

该表包含以下字段:deviceId,userId,密钥,有效性

这是我的批量更新代码

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);

我想要做的只是在更新有效性字段的同时保留字段key和userId的值。

但是,当我执行上述代码时,似乎会更新已提交的有效性,但会删除key和userId字段。

1 个答案:

答案 0 :(得分:2)

您只能使用batchWriteItem,它与putItem等效,它将用您指定的项目替换表中的整个项目。

您需要为每个项目分别调用updateItem。