Wie fügen Sie einen Wert für list-Attribut auf AWS DynamoDB?
Ich bin mit DynamoDB als K-V-db (da es nicht viele Daten, ich denke das ist in Ordnung) , und ein Teil von 'V' ist Typ "Liste" (über 10 Elemente). Es gibt einige session Anhängen, einen neuen Wert zu, und ich kann nicht einen Weg finden, dies zu tun in 1 Anfrage. Was ich habe ist wie folgt:
item = self.list_table.get_item(**{'k': 'some_key'})
item['v'].append('some_value')
item.partial_save()
Bitte ich, zuerst den server, und speichern Sie Sie, nachdem verändert sich der Wert. Das ist nicht atomar und hässlich aussieht. Gibt es eine Möglichkeit, dies zu tun, in einer Anfrage?
InformationsquelleAutor kxxoling | 2015-07-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollte der folgende code funktioniert mit boto3:
Den get_dynamodb_resource Methode hier ist nur:
Sehr nützlich! Sorry, ich kann nur do +1 🙁
funktioniert die list-item bestehen müssen? oder kann ich dann nutzen Sie einfach dieses und es wird init some_attr für mich wie eine leere Liste, wenn es nicht vorhanden ist?
InformationsquelleAutor LaserJesus
Dazu können Sie in 1 Anfrage mithilfe der
UpdateItem
API in Verbindung mit einemUpdateExpression
. Da Sie Anhängen möchten, in eine Liste verwenden Sie dieSET
Aktion mit derlist_append
Funktion:Sehen Sie ein paar Beispiele aus dem Bearbeiten von Elementen und Attributen mit Update-Ausdrücke Dokumentation:
Den
#pr
und:r
verwenden Platzhalter für die Namen der attribute und Werte. Sie können weitere Informationen auf die auf die Verwenden von Platzhaltern für die Attributnamen und-Werten Dokumentation.InformationsquelleAutor mkobit
Ich würde schauen-update-Ausdrücken:
http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.Modifying.html#Expressions.Modifying.UpdateExpressions.ADD
Sollte machbar sein mit einer BEURTEILUNG, wenn auch nicht sicher, was die Unterstützung in boto ist.
InformationsquelleAutor Mircea