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

Amazon dynamodb 如何在仅更新特定字段的dynamo db中进行批量更新,amazon-dynamodb,Amazon Dynamodb,该表由以下字段组成:deviceId、userId、key、validity 这是我的批量更新代码 TableWriteItems writeItems = new TableWriteItems(getDevicesTableName(manufacturer, sdkType)); for(int j = i * maxUpdatePerBatch; j < (i + 1) * maxUpdatePerBatch; j++) { JSONObject device = dev

该表由以下字段组成: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);
TableWriteItems writeItems=新的TableWriteItems(getDevicesTableName(制造商,sdkType));
对于(int j=i*maxUpdatePerBatch;j<(i+1)*maxUpdatePerBatch;j++)
{
JSONObject device=devices.getJSONObject(j);
writeItems.addItemToPut(新项(),带有(Param.DEVICE_ID,DEVICE.getString(Param.DEVICE_ID))
.with(Param.VALIDITY,device.getString(Param.VALIDITY));
}
BatchWriteItemOutcome结果=db.batchWriteItem(writeItems);
我试图做的只是更新validity字段,同时保留字段key和userId的值


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

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


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

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


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

如果我要更新数千个项目,这不是需要很长时间吗?您可以并行调用。您实际上只受设置的写入容量以及对进行更新调用的内容的任何网络/计算限制的限制。如果我更新数千项,这不会花费很长时间吗?您可以并行进行调用。实际上,您只受您所配置的写容量以及对进行更新调用的内容的任何网络/计算限制的限制。