2

我正在为 boto 使用 DynamoDb v2 接口在我的表中进行计数器增量。(我需要 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()

我应该怎么做才能增加“计数器”字段?

4

1 回答 1

6

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

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

如果您已经在获取当前值,则似乎

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

将执行 update_item 请求。

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

dynoConnLayer1.update_item("my_table", 
                    {"key":{"S":"my_key"}, 'range_key' : {"S": "my_range"}},
                    {"counter":
                        {"Action":"ADD","Value":{"N":"1"}}
                    }
                )
于 2013-06-26T19:16:10.677 回答