如何在PHP API中的Dynamodb的updateItem()中使用if_not_exists()获取地图的键

时间:2016-05-25 08:50:43

标签: php amazon-web-services amazon-dynamodb aws-php-sdk

先谢谢你的时间!

地图:

国家:{   瑞典:3,   美国:4,   英国:9 }

我如何检查地图中是否存在国家/地区名称,如果没有,则创建它并将其设置为默认值。例如,西班牙不在地图中,我怎么能使用if_not_exits()?

该文件在此提及此功能:http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.Modifying.html

我发现有人为列表应用了if_not_exits():Is it possible to combine if_not_exists and list_append in update_item。然后它如何适用于地图?

期待您的回复,非常感谢您!

此致

2 个答案:

答案 0 :(得分:1)

我找到了使用in_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 '

答案 1 :(得分:-1)

<?php
$Country= array("Sweden"=>3, "US"=>4, "UK"=>9);
if(!array_key_exists("CN", $array))
{
    $Country['CN']=3;
}
?>