条件表达式DynamoDb中的算术运算

时间:2018-10-24 08:57:38

标签: node.js amazon-web-services amazon-dynamodb

我正在尝试根据地图中的其他两个字段以及客户端提供的一个值来更新地图中的嵌套字段。

我的代码看起来像这样(或者至少我想要)

ConditionExpression: 'size(#ttid.#t) < (#ttid.#mq - :qw)'

ExpressionAttributeNames: {
    '#ttid': 'ticketTypeId',
    '#t': 'tickets',
    '#mq': 'maxQuantity'
}

ExpressionAttributeValues: {
    ':qw': quantityWanted // This is from the client
}

我要在哪里更新地图...

{
    'thisIsATicketTypeId': {
        'maxQuantity': 500,
        'tickets': {
            'thisIsATicketId': { ...thisIsATicket },
            'thisIsAnotherTicketId': { ...thisIsAnotherTicket },
            } // size(#ttid.#t) gives me the number of tickets on this map
        }
    }
}

错误消息是:

"Invalid ConditionExpression: Syntax error; token: \\\"-\\\", near: \\\"#mq - :qw\\\

我知道我可以在条件表达式之前进行额外的读取并计算mq-qw,但这会花费我一个额外的读取单元,这看起来...很愚蠢。

我该怎么办?

0 个答案:

没有答案