当前位置: 首页 > 知识库问答 >
问题:

DynamoDB用数字更新项目计算?

陶智
2023-03-14

我希望我的UpdateItem函数将新值添加到上一个值中,但我不知道如何使用数字进行计算并访问要添加到新值中的当前值。

这是我的工作功能,我想做的事情包括在评论中。我该怎么做?

{
    "TableName": "Votes",
    "Key": {
        "votesId": {
            "S": "$input.path('$.votesId')"
        }
    },
    "UpdateExpression": "set buy =  :val1",
    "ExpressionAttributeValues" : {
        ":val1": { 
            "N": "$input.path('$.buy')" 
            //Would like: "N": "buy + $input.path('$.buy')"
        }
    },
    "ReturnValues": "ALL_NEW"
}

下面是我测试它的方法:

{
    "votesId":1,
    "down":0,
    "up":0,
    "hold":0,
    "buy":0,
    "sell":0
}

共有1个答案

侯兴为
2023-03-14

可以使用UpdateExpression来指示要更新哪些属性以及要执行哪些操作。

具体来说,UpdateExpression支持以下功能:

SET myNum = myNum + :val
 类似资料:
  • 问题内容: 我一直在尝试找出如何更新dynamoDB中的项目,但没有成功。 我知道如何添加和删除项目,但不更新。 这是我的代码: 问题答案: 看来您正在尝试使用Expression更新项目,在这种情况下,您不正确。无论是和用于占位符代替你的表达。 我想如果您想为某项设置属性,您的代码将类似于以下内容: 这将更新一个看起来像这样的项目: 对此:

  • 我试图更新DynamoDB表中的项目。我写的代码正在更新项目,但是当我添加一个标题为“源代码/目标”的列时,它会给出一个“验证异常”异常。 用于更新的代码- 我得到的错误是- 调用UpdateItem操作时发生错误(ValidationException):无效的UpdateExpression:语法错误;标记:\“/\”,靠近:\“源/目标” 这个怎么解决?

  • 这看起来应该很简单,但我没有找到任何例子或留档。我有一个看起来像这样的Dynamodb表: 记录1:{姓名、电子邮件、项目[{product}、{item2}、{item3]} 记录2:(姓名、电子邮件、项目[{product}、{item2}、{item3]} 我需要能够更新items元素,即更新记录1中的item1对象。我可以通过硬编码list数组元素使用以下代码来实现这一点,但我不知道如何将

  • 我尝试使用表达式更新Dynamo表,我尝试动态生成键。问题是,如果表达式中有空格,则表达式的计算结果将不正确。 以下是我的更新实现: 如果我打印update_expression和expression_attribute_values的值expression_attribute_names我得到以下输出。update_expression expression_attribute_values 表

  • 因此,我在DynamoDB中有一项: 我想添加一个新的属性到上述项目,属性是: 现在,我在JS中使用AWS-SDK这样做: 但是,我得到一个错误: ExpressionAttributeValue包含无效值:一个或多个参数值无效:AttributeValue不能包含key:newAttr的空字符串 所以如果我是这样就可以了,但我不希望这个新属性是一个字符串,我希望它是一个列表。 那么我做错了什么?