Amazon dynamodb 如何原子地更新DynamoDB文档(JSON)?

Amazon dynamodb 如何原子地更新DynamoDB文档(JSON)?,amazon-dynamodb,Amazon Dynamodb,我的表中有一个Document(JSON)类型的属性,其中的值是计数: { "item1" : "5", "item2" : "7" } DynamoDB文档API是否有一种方法可以原子地增加映射的值?我的应用程序将有多个主机递增这些值,因此简单地使用put将不起作用,因为它们将相互覆盖 我知道对于整数属性,我们可以在更新表达式中使用set#count=#count+:countVal进行原子计数。处理文档是否有类似的功能 另外,我注意到,DynamoDBMapper无法进行原子计数器更新,因

我的表中有一个Document(JSON)类型的属性,其中的值是计数:

{ "item1" : "5", "item2" : "7" }
DynamoDB文档API是否有一种方法可以原子地增加映射的值?我的应用程序将有多个主机递增这些值,因此简单地使用
put
将不起作用,因为它们将相互覆盖

我知道对于整数属性,我们可以在更新表达式中使用
set#count=#count+:countVal
进行原子计数。处理文档是否有类似的功能


另外,我注意到,
DynamoDBMapper
无法进行原子计数器更新,因此我必须使用较低级别的文档API,对吗?

如果我理解正确,您的一个属性作为映射,表中有键值对。Dynamodb支持表达式中的文档路径。所以你可以

doc.item1 = doc.item1 + :countVal

您是正确的,dynamodbmapper不支持原子计数器更新。不过,将dynamodbmapper和低级API结合使用似乎很常见

如果我理解正确,您将其中一个属性作为映射,表中有键值对。Dynamodb支持表达式中的文档路径。所以你可以

doc.item1 = doc.item1 + :countVal

您是正确的,dynamodbmapper不支持原子计数器更新。不过,将dynamodbmapper和低级API结合使用似乎很常见

如果我有这样一张地图:{“1.50”:5,“2.50”,7},会怎么样?因为映射的尊重操作符是一个点,所以我似乎无法访问键为整数的映射?没关系,我刚刚发现我可以使用表达式属性名称来解决这个问题。如果我有这样一个映射:{“1.50”:5,“2.50”,7}?由于映射的尊重操作符是一个点,似乎我无法访问键为整数的映射?没关系,我刚刚发现我可以使用表达式属性名称来解决这个问题。