gpt4 book ai didi

php - 使用 AWS 开发工具包 PHP 的 DynamoDB 中的保留字

转载 作者:行者123 更新时间:2023-12-02 20:39:31 24 4
gpt4 key购买 nike

我使用 batchGetItem 方法来检索 x 个项目,并使用 ProjectionExpression 来检索每个项目的 x 个属性。

$result = $client->batchGetItem(array(
'RequestItems' => array(
$table => array(
'Keys' => $keys,
'ConsistentRead' => true,
'ProjectionExpression' => "id, name"
),
),
));
$read_items = $result->getPath("Responses/{$table}");

但是,我的一些项目具有 nametoken 等属性,这些属性是 DynamoDB 中的保留字。

http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html

{"__type":"com.amazon.coral.validate#ValidationException","message":"Invalid ProjectionExpression: Attribute name is a r (truncated...)
ValidationException (client): Invalid ProjectionExpression: Attribute name is a reserved keyword; reserved keyword: name - {"__type":"com.amazon.coral.validate#ValidationException","message":"Invalid ProjectionExpression: Attribute name is a reserved keyword; reserved keyword: name"}
Filename: /var/app/vendor/aws/aws-sdk-php/src/WrappedHttpHandler.php

据我所知表达式属性名称是这个的灵魂,但我正在努力寻找实现它的方法batchGetItem,有人可以举一个小例子吗如何使用 SDK PHP 版本 3.20.11 执行此操作?

最佳答案

以下是 ExpressionAttributeNames 的示例。

“#name” - 是属性名称的占位符,实际属性名称将替换为 ExpressionAttributeNames 中的值。

$result = $client->batchGetItem(array(
'RequestItems' => array(
$table => array(
'Keys' => $keys,
'ConsistentRead' => true,
'ProjectionExpression' => "id, #name",
'ExpressionAttributeNames' => array('#name' => 'name'}
),
),
));

引用link

关于php - 使用 AWS 开发工具包 PHP 的 DynamoDB 中的保留字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46298486/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com