DocumentClient和GSI的batchWrite方法

The batchWrite method of DocumentClient and GSI

我正在尝试从 DynamoDB table 中删除一些项目。我的 table 有一个全局二级索引。我想知道是否可以使用 DocumentClient 的 batchWrite 方法从 GSI table 中删除项目。或者我们可以只使用 GSI 来获取数据?

var params = {
  RequestItems: {
    'Table-1': [
      {
        DeleteRequest: {
          Key: { HashKey: 'someKey' }
        }
      }
    ]
  }
};

documentClient.batchWrite(params, function(err, data) {
  if (err) console.log(err);
  else console.log(data);
});

如果可能,请提供一些参数示例。

docs

您不能从 GSI 中删除。这些索引几乎是只读的:你不能通过全局二级索引改变 table 中的数据,所以不能插入、删除或更新。

您只能从 GSI 中读取,然后执行必要的逻辑以按键删除主 table 中的项目。

此外,批处理操作并没有使删除这些项目的效率提高很多:是的,它节省了网络调用(最多 25:1)但不节省已用的写入容量。