Dha*_*dra 2 amazon-web-services node.js amazon-dynamodb dynamodb-queries
我正在尝试从 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" );
}
});
Run Code Online (Sandbox Code Playgroud)
DynamoDB 中的项目(或行)由它们的主键唯一标识。一个表可以有一个简单的主键(一个分区键)或一个复合主键(一个分区键加一个排序键)。
要删除项目,您必须提供完整的主键(无论是简单分区键还是复合分区键加排序键)。
因此,如果您想删除满足特定条件的项目,例如 maxspeed < 120 的汽车,则发出查询或扫描以识别这些项目,检索主键,然后在第二个操作中删除这些项目。
要删除单个项目,请使用DeleteItem。要删除多个项目,请使用BatchWriteItem。尽管命名为BatchWriteItem,但它可用于放置多个项目或删除多个项目,并且您可以在同一个 API 调用中定位一个或多个 DynamoDB 表。
在 DynamoDB 中,您只能使用其键(即:分区键和排序键,如果在表中定义)来删除项目。例如,该Key属性是操作的规范规范中必需的属性这一事实强调了这一点delete。请参阅: https: //docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html#DDB-DeleteItem-request-Key
这意味着,如果您想使用其他属性删除项目,则必须首先通过您拥有的属性查找该项目,从返回的项目中提取键,然后使用该键删除该项目。
“通过不是项目键的属性查找项目”的标准解决方案是在表上定义全局二级索引 (GSI),并将这些属性定义为 GSI 的键。
| 归档时间: |
|
| 查看次数: |
6752 次 |
| 最近记录: |