Я пытаюсь обновить вложенное поле в карте на основе двух других полей в этой карте и одного значения, предоставленного клиентом.
Мой код выглядит так (или, по крайней мере, я этого хочу)
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 до выражения условия, но это будет стоить мне дополнительной единицы чтения, и это только кажется ... Глупо.
Что я могу сделать?