繁体   English   中英

PHP DynamoDB- 添加/更新列表中的值

[英]PHP DynamoDB- Add/Update an value in the list

我正在尝试将更多 email 地址添加到列表中。 Dynamo DB 中的架构和示例

ID: STRING
DEP: MAP
    Contacts: MAP
        EMAIL: LIST
Version: Number
    

{
 “ID”: "1234567888",
 "Dep": {
            "Contacts": {
                   "Email": [
                            "test@test.com”
                            ]
                   }
           },
 "Version": 34
}

我试过了,但它只是更新了值,但没有添加新值。 (如果值不存在,如果您也可以帮助我,那么仅添加会很好但不是强制性的)

$eav = $marshaler->marshalItem([":email" => [$email]]);
$params = ['TableName' => "xxx", 'ID' => $key, 
        'UpdateExpression' => 'SET Dep.Contacts.Email = :email',
    'ExpressionAttributeValues' => $eav, 'ReturnValues' => 'UPDATED_NEW'];
                        
$result = $dynamodb->updateItem($params);

您应该list_append将元素添加到列表中。 下面的 CLI 示例:

--update-expression "SET #ri = list_append(#ri, :vals)" 

您可以在此处的文档中看到这一点:

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html#Expressions.UpdateExpressions.SET.AddingListElements

问题未解决?试试以下方法:

PHP DynamoDB- 添加/更新列表中的值

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2023 STACKOOM.COM