当前位置: 首页 > 面试题库 >

无法更新DynamoDB中的项目

乐山
2023-03-14
问题内容

我一直在尝试找出如何更新dynamoDB中的项目,但没有成功。

我知道如何添加和删除项目,但不更新。

这是我的代码:

dynamoDB.updateItem({
    "TableName": "mytable",
    "Key": {
        "thing_ID": {"S": "0000"}
    },
    "UpdateExpression": "SET",
    "ExpressionAttributeNames": {
        "SessionID": ""
    },
    "ExpressionAttributeValues": {
        "SessionID": {
            "S": "maybe this works",
        }
    }
})

问题答案:

看来您正在尝试使用Expression更新项目,在这种情况下,您UpdateExpression不正确。无论是ExpressionAttributeNamesExpressionAttributeValues用于占位符代替你的表达。

我想如果您想为某项设置属性,您的代码将类似于以下内容:

dynamoDB.updateItem({  
    "TableName" : "exampleTable",
    "Key" : {
        "hashAttributeName" : {
            "S" : "thing_ID"
        }
    },
    "UpdateExpression" : "SET #attrName =:attrValue",
    "ExpressionAttributeNames" : {
        "#attrName" : "SessionID"
    },
    "ExpressionAttributeValues" : {
        ":attrValue" : {
            "S" : "maybe this works"
        }
    }
});

这将更新一个看起来像这样的项目:

{  
    "Item":{  
        "hashAttributeName":"thing_ID"
    }
}

对此:

{  
    "Item":{  
        "hashAttributeName" : "thing_ID",
        "SessionID" : "maybe this works"
    }
}


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

  • 在文档之后,我尝试创建一个update语句,该语句将更新或添加dynamodb表中的一个属性(如果不存在)。 我在试这个 我得到的错误是: 如果有人做了类似于我正在努力实现的事情,请分享例子。

  • 这看起来应该很简单,但我没有找到任何例子或留档。我有一个看起来像这样的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 表

  • 我的表格数据如下所示 下面是我更新表格的代码。我传递给函数的变量有值has,has和has。我正在尝试将的值从更新到,但出现错误“更新表达式中提供的文档路径对更新无效” 是否有方法将的值更新或将完整字符串替换为