Php 尝试的条件约束在dynamodb中不是可索引的操作问题

Php 尝试的条件约束在dynamodb中不是可索引的操作问题,php,amazon-web-services,amazon-ec2,amazon-dynamodb,Php,Amazon Web Services,Amazon Ec2,Amazon Dynamodb,在DynamoDB中,除了PHP中的EQ之外,我的查询不使用ComparisonOperator。我正在使用全局二级索引: $response = $client->query(array( "TableName" => $tableName, "IndexName" => "topRating", // GSI index name "KeyConditions" => array( "rating" => array(

在DynamoDB中,除了PHP中的
EQ
之外,我的查询不使用ComparisonOperator。我正在使用全局二级索引:

$response = $client->query(array(
    "TableName" => $tableName,
    "IndexName" => "topRating", // GSI index name
    "KeyConditions" => array(
        "rating" => array(
            "ComparisonOperator" => "NE", // Only 'EQ' works
            "AttributeValueList" => array(
                array(Type::STRING => "1186") // Sample value
            )
        )
    ),
    "ScanIndexForward" => true,
    "limit" => 5
));
创建表时,我使用
rating
作为哈希键来创建
toprrating
GSI

答复如下:

致命错误:未捕获Aws\DynamoDb\Exception\ValidationException:Aws 错误代码:ValidationException,状态代码:400,AWS请求ID: XXXXX YYYY ZZZZ,AWS错误类型:客户端,AWS错误消息:已尝试 条件约束不是可索引的操作,用户代理: aws-sdk-php2/2.7.0 Guzzle/3.9.2 curl/7.19.7 PHP/5.4.30加入

根据AWS文档(),似乎
查询
操作不支持
NE
操作符:

扫描操作支持所有可用的比较运算符。查询操作支持可用比较运算符的子集:EQ、LE、LT、GE、GT、BETWEEN和以开头


该操作确实支持此操作。

响应是什么?请编辑您的问题,并将输出粘贴到之间,也可以删除或假装敏感/泄露信息,如个人文件夹名称和请求id's@ManeatingKoala您能帮助我吗?aws查询是否支持除EQ以外的任何其他比较运算符?实际上,当我使用LE时,它显示“不支持查询键条件”。您使用的是哪个SDK版本?我的回答显然适用于旧版本。在版本2.7.2()的文档中,说明支持
NE
运算符(搜索网页以查找ComparisonOperator)。说:“在DynamoDB中,除了为哈希键指定等于外,没有其他方法可以指定其他条件。”