Я пытаюсь добавить String к существующему StringSet в DynamoDB, используя функцию list_append. Кто-нибудь может увидеть, что не так с этим кодом? Я прочитал и перечитал документы Amazon, но не могу найти проблему.
$this->objClient->updateItem( array(
'TableName' => 'mytable',
'Key' => array(
'sEmailAddress' => array(
'S' => 'somebody@email.com'
)
),
"ExpressionAttributeValues" => array(
':vServices' => array(
"SS" => array(
'value to append'
)
)
),
"ExpressionAttributeNames" => array(
"#serv" => "sServices"),
'UpdateExpression' => 'set #serv = list_append( #serv, :vServices )'
));
Сгенерированное сообщение об ошибке:
Invalid UpdateExpression: неверный тип операнда для оператора или функции; оператор или функция: list_append, тип операнда: SS
Из того, что я прочитал, я подумал, что оба операнда должны быть StringSets. Напрасно я пытался изменить второй параметр, чтобы он был одной строкой (тип ‘S’), но все еще испытываю такую же ошибку вида:
Invalid UpdateExpression: неверный тип операнда для оператора или функции; оператор или функция: list_append, тип операнда: S
Любая помощь приветствуется!
list_append
работает по двум спискам. Чтобы добавить элемент в набор, вы можете использовать ADD
оператор вместо вызова SET
с результатами list_append
,
Других решений пока нет …