【问题标题】:The batchWrite method of DocumentClient and GSIDocumentClient 和 GSI 的 batchWrite 方法
【发布时间】:2019-07-28 08:18:16
【问题描述】:

我正在尝试从 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);
});

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

docs

【问题讨论】:

    标签: node.js amazon-dynamodb serverless-framework dynamodb-queries documentclient


    【解决方案1】:

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

    你只能从 GSI 中读取,然后实现必要的逻辑来按键删除主表中的项目。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多