将值附加到使用aws-php-sdk

我正在将aws-php-sdk与dynamoDB一起使用,以存储一组唯一的键数值。 我希望能够将新值添加到集合中-使用列表很容易实现,但是这也会导致重复的值,因此我宁愿使用集合。 由于dynamoDB的收费方式,我不需要读取所有值,插入唯一值并写回整个设置,因为在横向扩展时这会非常昂贵。文件似乎建议可以将数字附加到数字集上,但在使其生效方面并没有太大帮助。

$UpdateExpression = "
                SET #subscribers = list_append(if_not_exists(#subscribers,:empty_list),:subscriber)
        ";

//如果该值已经存在,则此条件应该匹配。

        $ConditionExpression = "not contains (#subscribers,:subscriberStr)";

        $ExpressionAttributeNames = [
                "#subscribers" => "subscribers"
        ];


        $ExpressionAttributeValues = $marshaler->marshalJson('
                {
                        ":subscriber": ['.$subscriber.'],":empty_list": [],":subscriberStr": "'.$subscriber.'"
                }
        ');


        $tableName = 'publisherRelationships';

        $key = $marshaler->marshalJson('
                {
                        "publisher": '.$publisher.'
                }
       ');

        $params = [
                'TableName' => $tableName,'Key' => $key,'UpdateExpression' => $UpdateExpression,'ConditionExpression' => $ConditionExpression,'ExpressionAttributeNames' => $ExpressionAttributeNames,'ExpressionAttributeValues' => $ExpressionAttributeValues
        ];


        $result = $client->updateItem($params);
iCMS 回答:将值附加到使用aws-php-sdk

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/1987828.html

大家都在问