Ich habe eine dynamodb Tabelle, die Benutzervideos speichert. Es ist wie folgt strukturiert:Aktualisieren mehrerer Elemente mit demselben Hash-Schlüssel in DynamoDb
{
"userid": 324234234234234234, // Hash key
"videoid": 298374982364723648 // Range key
"user": {
"username": "mario"
}
}
ich Benutzername für alle Videos von einem bestimmten Benutzer aktualisieren möchten. Es ist möglich, mit einem einfachen Update oder ich muss scannen Sie die komplette Tabelle und aktualisieren ein Element pro Zeit?
var params = {
TableName: DDB_TABLE_SCENE,
Key: {
userid: userid,
},
UpdateExpression: "SET username = :username",
ExpressionAttributeValues: { ":username": username },
ReturnValues: "ALL_NEW",
ConditionExpression: 'attribute_exists (userid)'
};
docClient.update(params, function(err, data) {
if (err) fn(err, null);
else fn(err, data.Attributes.username);
});
Ich erhalte den folgenden Fehler, ich nehme an, der Bereichsschlüssel ist notwendig.
ValidationException: The provided key element does not match the schema