0

我正在尝试从 DynamoDB 表中删除一些项目。我的表有一个全局二级索引。我想知道是否可以使用 DocumentClient 的 batchWrite 方法从 GSI 表中删除项目。或者我们可以只使用 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);
});

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

文档

4

1 回答 1

0

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

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

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

于 2019-07-28T17:27:42.690 回答