Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.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
Amazon dynamodb DynamoDB update_项:增加现有项的值,或对新项使用1_Amazon Dynamodb_Dynamodb Queries - Fatal编程技术网

Amazon dynamodb DynamoDB update_项:增加现有项的值,或对新项使用1

Amazon dynamodb DynamoDB update_项:增加现有项的值,或对新项使用1,amazon-dynamodb,dynamodb-queries,Amazon Dynamodb,Dynamodb Queries,我尝试使用updateitem,因为它用于更新现有项目和创建新项目: 编辑现有项的属性,或向表中添加新项 如果它还不存在 我想储存: 第一次有人打开一个项目 上次有人打开物品时 项目的开口数 我有以下代码: table.update_item( Key={'item':"NEW"}, UpdateExpression="SET opens = if_not_exists(opens + :var1, :var0), last_ope

我尝试使用updateitem,因为它用于更新现有项目和创建新项目:

编辑现有项的属性,或向表中添加新项 如果它还不存在

我想储存:

第一次有人打开一个项目 上次有人打开物品时 项目的开口数 我有以下代码:

table.update_item(
                Key={'item':"NEW"},
                UpdateExpression="SET opens = if_not_exists(opens + :var1, :var0), last_open = :var2, first_open = if_not_exists(first_open, :var3)",
                ExpressionAttributeValues={
                ':var0': "0",
                ':var1': "1",
                ':var2': '2020-04-01',
                ':var3': '1999-01-01'
                },
        ReturnValues="UPDATED_NEW"
                )
新项目和现有项目出现错误,并显示

调用UpdateItem时发生ValidationException错误 操作:无效的UpdateExpression:语法错误;令牌:\+\,靠近: \打开+:var1\

以下内容适用于现有项目,但对新项目会引发错误:

table.update_item(
            Key={'item':"NEW"},
            UpdateExpression="SET opens = opens + :var1, last_open = :var2, first_reachout = if_not_exists(first_open, :var3)",
            ExpressionAttributeValues={
            ':var1': "1",
            ':var2': '2020-04-01',
            ':var3': '1999-01-01'
            },
    ReturnValues="UPDATED_NEW"
            )
仅新的错误:

table.update_item(
            Key={'item':"NEW"},
            UpdateExpression="SET opens = opens + :var1, last_open = :var2, first_reachout = if_not_exists(first_open, :var3)",
            ExpressionAttributeValues={
            ':var1': "1",
            ':var2': '2020-04-01',
            ':var3': '1999-01-01'
            },
    ReturnValues="UPDATED_NEW"
            )
调用UpdateItem操作时发生ValidationException错误:提供的表达式引用了项中不存在的属性


我猜这意味着contacts属性,但是如果不存在,那么将其包含在if_not_exists中也不起作用。…

您可以在中找到UpdateExpression语法的文档。你的问题的相关部分如下:

value ::=
    operand
    | operand '+' operand
    | operand '-' operand

operand ::=
    path | function
这意味着+只能位于表达式的顶层,不能位于函数的参数内


幸运的是,您有一个简单的解决方法。请尝试:var1+if\u not\u existsopens,:var0,而不是您尝试的if\u not\u existsopens+:var1,:var0。

您使用的是什么语言或sdk?我也无法理解这一点。谢谢