无服务器:动态数据库删除where条件



我正在尝试删除有条件的记录,但失败了。我一直收到这个错误:The provided key element does not match the schema

这是我在yml:中的定义

resources:
Resources:
vuelosTable:
Type: 'AWS::DynamoDB::Table'
DeletionPolicy: Delete
Properties:
AttributeDefinitions:
-
AttributeName: id
AttributeType: S
-
AttributeName: vuelta
AttributeType: S
KeySchema:
-
AttributeName: id
KeyType: HASH
-
AttributeName: vuelta
KeyType: RANGE
ProvisionedThroughput:
ReadCapacityUnits: 1
WriteCapacityUnits: 1
TableName: ${self:provider.environment.DYNAMODB_TABLE}

以下是尝试删除时的参数:

params = {
RequestItems: {
[process.env.DYNAMODB_TABLE]: [{
DeleteRequest: {
Key: {
"vuelta": "2017-09-09"
}
}
}]
}
};

我知道这是我得不到的东西,但我不知道是什么。有什么想法吗?

您的表键是idvuelta,但您在删除请求中只提供了vuelta。修改删除请求中的密钥,使其同时包含idvuelta

此外,根据您的客户端库,可能需要指定

Key: {
id: { S: "some value" },
vuelta: { S: "some value" }
}

最新更新