2013-06-22 5 views
2

J'utilise l'interface DynamoDb v2 pour boto pour créer des incréments de compteurs dans ma table. (j'ai besoin interface v2 comme je traiterai avec des index plus tard) D'une certaine façonIncrémenter le compteur dans AWS DynamoDb à l'aide de boto.dynamodb2 en Python

Je ne suis pas en mesure de trouver comment faire sans aller chercher l'article & mise à jour à nouveau.

Voici le code que je utilise

from boto.dynamodb2.table import Table 
from boto.dynamodb2.items import Item 

my_table = Table('my-table') 

# Update counter for existing record. 
data = {'key': 'my_key', 
     'range_key': 'my_range', 
     } 

item = Item(my_table, data) 
#### Do something here to increment 'counter' by 1 
item.save() 

Que dois-je faire pour incrémenter un champ « contre » ??

Répondre

5

Vérifiez cette réponse: Update DynamoDB Atomic Counter with Python/Boto

Ce traite avec DynamoDB v1, et je n'ai pas testé si cela fonctionne toujours avec v2.

Si vous récupérez déjà la valeur actuelle, il semble que

item.add_attribute('counter', 1) 
item.save() 

fera une demande de update_item.

Vous pouvez également faire une demande de update_item directement:

dynoConnLayer1.update_item("my_table", 
        {"key":{"S":"my_key"}, 'range_key' : {"S": "my_range"}}, 
        {"counter": 
         {"Action":"ADD","Value":{"N":"1"}} 
        } 
       ) 
+0

ne fonctionne pas avec Boto API DynamoDB –

Questions connexes