Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python中的boto.dynamodb2在AWS DynamoDb中增加计数器_Python_Amazon Web Services_Boto_Amazon Dynamodb - Fatal编程技术网

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

使用Python中的boto.dynamodb2在AWS DynamoDb中增加计数器,python,amazon-web-services,boto,amazon-dynamodb,Python,Amazon Web Services,Boto,Amazon Dynamodb,我正在使用dynamodbv2接口为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

我正在使用dynamodbv2接口为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()
我应该如何增加“计数器”字段???

查看以下答案:

这是针对DynamodbV1的,我还没有测试它是否仍然适用于v2

如果您已经在获取当前值,那么

item.add_attribute('counter', 1)
item.save()
将执行更新项目请求

您也可以直接执行更新项目请求:

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