как использовать if_not_exists() для ключа карты в updateItem() Dynamodb в PHP API

спасибо за ваше время в первую очередь!

Карта:

Country:{
  Sweden: 3,
  US: 4,
  UK: 9
}

Как я могу проверить, существует ли название страны на карте, если нет, то создать его и установить для него значение по умолчанию. Например, Испании нет на карте, как я могу использовать if_not_exits()?

В документе эта функция упоминается здесь: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.Modifying.html .

Я обнаружил, что кто-то применил if_not_exits() для списка: Можно ли объединить if_not_exists и list_append в update_item. Тогда как это работает для карты?

С нетерпением жду вашего ответа и большое спасибо!

Искренне


person Spider    schedule 25.05.2016    source источник


Ответы (2)


Я нашел решение для использования if_not_exits для карты:

'ExpressionAttributeValues' => [
            ':val2' => ['N' => '9']

    ],

    'UpdateExpression' => 'SET Country.Spain = if_not_exists(Country.Spain, :val2)'

Кроме того, я также нашел решение сначала проверить и внести изменения, если они существуют:

'ExpressionAttributeValues' => [
                ':val2' => ['N' => '9'],
                ':val3' => ['N' => '1']

        ],

        'UpdateExpression' => 'SET country_name.Sweden = if_not_exists(country_name.Sweden, :val2) + :val3 '
person Spider    schedule 25.05.2016

person    schedule
comment
Большое спасибо за ответ! Но моя проблема не является чистой проблемой php, это произошло в PHP SDK Amazon-dynamodb. - person Spider; 25.05.2016