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);
});
如果可能,请提供一些参数示例。
您不能从 GSI 中删除。这些索引几乎是只读的:你不能通过全局二级索引改变 table 中的数据,所以不能插入、删除或更新。
您只能从 GSI 中读取,然后执行必要的逻辑以按键删除主 table 中的项目。
此外,批处理操作并没有使删除这些项目的效率提高很多:是的,它节省了网络调用(最多 25:1)但不节省已用的写入容量。
我正在尝试从 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);
});
如果可能,请提供一些参数示例。
您不能从 GSI 中删除。这些索引几乎是只读的:你不能通过全局二级索引改变 table 中的数据,所以不能插入、删除或更新。
您只能从 GSI 中读取,然后执行必要的逻辑以按键删除主 table 中的项目。
此外,批处理操作并没有使删除这些项目的效率提高很多:是的,它节省了网络调用(最多 25:1)但不节省已用的写入容量。