2016-04-22 7 views
1

Ich habe eine Liste der Karten als ein Feld einer DynamoDB-Tabelle. Wie kann ich ein bestimmtes Element (oder vielmehr Element Feld?) Aktualisieren etwas versuchen, wieUpdate Listenelement in Dynamodb

rc = table.update_item(Key={ 'username' : user }, 
    UpdateExpression="set list[:i].field = :nd", 
    ExpressionAttributeValues={ 
     ':i' : itemnum, 
     ':nd': data, 
    }, 
    ReturnValues="UPDATED_NEW" 
); 

Aber ich erhalte eine Fehlermeldung:

Invalid UpdateExpression: Syntax error; token: ":i", near: "[:i]" 

Irgendwelche Ideen, wie kann ich Listenelement Referenz mit variabler Nummer. Vielen Dank.

Antwort

2

Verwenden Sie eine wörtliche statt:

rc = table.update_item(Key={ 'username' : user }, 
    UpdateExpression="set list[" + itemnum + "].field = :nd", 
    ExpressionAttributeValues={ 
     ':nd': data, 
    }, 
    ReturnValues="UPDATED_NEW" 
);