使用Python中的boto.dynamodb2在AWS DynamoDb中增加计数器

Him*_*hu 2 python boto amazon-web-services amazon-dynamodb

我正在使用DynamoDb v2接口为boto在我的表中进行计数器增量.(我需要v2接口,因为我稍后会处理索引)

不知怎的,我没有找到如何做到这一点,如果没有提取项目并再次更新它.

这是我正在使用的代码

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()
Run Code Online (Sandbox Code Playgroud)

如何增加"计数器"字段?

pre*_*ion 6

看看这个答案:用Python/Boto更新DynamoDB原子计数器

这是处理DynamoDB v1,我还没有测试这是否仍适用于v2.

如果您已经获取当前值,则会出现这种情况

item.add_attribute('counter', 1)
item.save()
Run Code Online (Sandbox Code Playgroud)

将执行update_item请求.

您也可以直接执行update_item请求:

dynoConnLayer1.update_item("my_table", 
                    {"key":{"S":"my_key"}, 'range_key' : {"S": "my_range"}},
                    {"counter":
                        {"Action":"ADD","Value":{"N":"1"}}
                    }
                )
Run Code Online (Sandbox Code Playgroud)