node.js - 如何删除 DynamoDB 中的多行?
问题描述
我正在尝试从 DynamoDB 表中删除数据。
如果我使用分区键删除数据,它可以工作。
但是当我使用任何其他字段删除多行时,它会失败。
var params = {
TableName: "test",
Key: {
dmac: dmac,
},
ConditionExpression: "dmac= :dmac"
};
docClient.delete( params, (error) => {
if (error) {
console.log( "Delete data fail" );
} else {
console.log( "Delete data Success" );
}
});
解决方案
DynamoDB 中的项目(或行)由其主键唯一标识。一个表可以有一个简单的主键(一个分区键)或一个复合主键(一个分区键加上一个排序键)。
要删除项目,您必须提供完整的主键(无论是简单分区键还是复合分区键加排序键)。
因此,如果您要删除满足特定条件的项目,例如 maxspeed < 120 的汽车,则发出查询或扫描以识别这些项目,检索主键,然后在第二次操作中删除这些项目。
要删除单个项目,请使用DeleteItem。要删除多个项目,请使用BatchWriteItem。尽管命名为BatchWriteItem
,但它可用于放置多个项目或删除多个项目,并且您可以在同一个 API 调用中定位一个或多个 DynamoDB 表。
推荐阅读
- reactjs - 当用户名丢失、密码不正确等时,AWS Amplify withAuthenticator UI 不显示祝酒词
- statistics - 样本量和置信区间?
- unity3d - 使用mrtk在Unity中开发oculus应用,流式调试时不显示
- github - git 密码身份验证的源代码树修复作为断电的一部分被暂时禁用。请改用个人访问令牌
- ios - iOS:设备上拒绝访问由扩展程序共享的文件
- c# - RabbitMQ 捕获队列长度异常
- python - 如何通过Python中的经纬度获取计算机所在位置的天气?
- javascript - 从外部库触发时反应状态不反应
- polygon - 大量点创建单独的多边形(ArcGIS/QGIS)
- ios - SwiftUI在没有按钮的情况下询问通知权限