Amazon dynamodb Dynamodb-表达式属性名称不起作用的条件表达式

Amazon dynamodb Dynamodb-表达式属性名称不起作用的条件表达式,amazon-dynamodb,dynamodb-queries,Amazon Dynamodb,Dynamodb Queries,我正在尝试执行条件更新,由于字段名是保留关键字,因此我使用ExpressionAttributeNames传入条件的列名。如果使用表达式属性名称,则更新部分不起作用。有什么想法吗 Update: { Key: { "pk": "sb#prd#" + productId, "sk": productId.

我正在尝试执行条件更新,由于字段名是保留关键字,因此我使用ExpressionAttributeNames传入条件的列名。如果使用表达式属性名称,则更新部分不起作用。有什么想法吗

Update: {
                    Key: {
                        "pk": "sb#prd#" + productId,
                        "sk": productId.toString()
                    },
                    TableName: 'test',
                    ConditionExpression: '#minQty >= :minQty',
                    UpdateExpression: "set sold_count = :sold_count",
                    ExpressionAttributeNames: {
                        "#minQty" : "variant[0].items[0].availableQty"
                    },
                    ExpressionAttributeValues: {
                   
                        ":sold_count" : 1,
                        ":minQty" : 1
                    },
                }

ExpressionAttributeNames中定义的别名只能是单个属性名称-它们不能是完整路径,如
变量[0]。项[0]。可用数量

您可以执行以下操作:

ConditionExpression: '#v[0].#i[0].#a >= :minQty',
ExpressionAttributeNames: {
    "#v" : "variant",
    "#i" : "items",
    "#a" : "availableQty"
},

ExpressionAttributeNames中定义的别名只能是单个属性名称-它们不能是完整路径,如
变量[0]。项[0]。可用数量

您可以执行以下操作:

ConditionExpression: '#v[0].#i[0].#a >= :minQty',
ExpressionAttributeNames: {
    "#v" : "variant",
    "#i" : "items",
    "#a" : "availableQty"
},

太棒了,太棒了,太棒了。