J'essaie, et j'échoue, de supprimer un enregistrement avec une condition. Je continue d'obtenir cette erreur: The provided key element does not match the schema
.Serverless: dynamodb delete where condition
C'est ma définition dans le 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}
Ce sont les params lorsque vous essayez de supprimer:
params = {
RequestItems: {
[process.env.DYNAMODB_TABLE]: [{
DeleteRequest: {
Key: {
"vuelta": "2017-09-09"
}
}
}]
}
};
Je sais qu'il est quelque chose que je ne reçois pas, mais je ne sais pas quelle. Des idées?
D'accord, mais qui me limite. Je dois avoir l'ID pour supprimer. Je veux être en mesure de supprimer ayant seulement la valeur Vuelta. En outre, considérons que la vuelta n'est pas unique parmi différents enregistrements. – yBrodsky
DeleteItem ne supprime qu'un seul élément. Il n'y a pas d'API de suppression groupée. Votre seule option est de scanner/interroger la table ou ses index pour trouver les clés puis les supprimer individuellement. –
J'utilise batchWrite, qui peut être utilisé pour mettre/supprimer des documents. http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchWriteItem.html – yBrodsky