Арифметическая операция в выражении условия DynamoDb - PullRequest
0 голосов
/ 24 октября 2018

Я пытаюсь обновить вложенное поле в карте на основе двух других полей в этой карте и одного значения, предоставленного клиентом.

Мой код выглядит так (или, по крайней мере, я этого хочу)

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 до выражения условия, но это будет стоить мне дополнительной единицы чтения, и это только кажется ... Глупо.

Что я могу сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...