2017-03-10 35 views
0

新しいレベルをクエリに追加しようとしていますが、クエリのフィールドの1つを使用して検索を進めていますが、クエリに何が問題なのか理解できませんでした。ここにデータが表示されますInvalid FilterExpression:Syntax error DynamoDB

Array 
(
    [TableName] => usuarios 
    [IndexName] => nombre-apellido-index 
    [KeyConditions] => Array 
     (
      [nombre] => Array 
       (
        [ComparisonOperator] => EQ 
        [AttributeValueList] => Array 
         (
          [0] => Array 
           (
            [S] => Carlos 
           ) 
         ) 

       ) 
      [apellido] => Array 
       (
        [ComparisonOperator] => BEGINS_WITH 
        [AttributeValueList] => Array 
         (
          [0] => Array 
           (
            [S] => Rodriguez 
           ) 
         ) 
       ) 
     ) 
    [ScanIndexForward] => 
    [Select] => ALL_ATTRIBUTES 
    [ReturnConsumedCapacity] => TOTAL 
    [ConsistentRead] => 
    [FilterExpression] => dob GT :value 
    [ExpressionAttributeValues] => Array 
     (
      [:value] => Array 
       (
        [S] => 1988-03-07 
       ) 

     ) 
    [Limit] => 100 
) 

構文に問題はありますか? FilterExpressionを使用しないと、クエリはうまく動作します。ここで私は

Fatal error: Uncaught exception 'Aws\DynamoDb\Exception\DynamoDbException' with message 'Error executing "Query" on "https://dynamodb.us-east-1.amazonaws.com"; AWS HTTP error: Client error: 400 ValidationException (client): Invalid FilterExpression: Syntax error; token: "GT", near: "dob GT :value" - {"__type":"com.amazon.coral.validate#ValidationException","message":"Invalid FilterExpression: Syntax error; token: \"GT\", near: \"dob GT :value\""}' exception 'GuzzleHttp\Exception\ClientException' with message 'Client error: 400' in _aws/3.3.0/GuzzleHttp/Middleware.php:69 Stack trace: #0 _aws/3.3.0/GuzzleHttp/Promise/Promise.php(199): GuzzleHttp\Middleware::GuzzleHttp\{closure}(Object(GuzzleHttp\Psr7\Response)) #1 _aws/3.3.0/GuzzleHttp/Promise/Promise.php(152): GuzzleHttp\Promise\Promise::callHandler(1, Object(GuzzleHttp\Psr7\Response), Array) #2 _aws/3.3.0/GuzzleHttp/Promise/TaskQueue.php(60): GuzzleHttp\Promise\Promise::GuzzleHttp\Promise\{closure}() #3 /v in _aws/3.3.0/Aws/WrappedHttpHandler.php on line 152 

答えて

1

あなたFilterExpressionが無効な構文があり得るエラーメッセージがあります。式を'FilterExpression' => 'dob > :value'と書き換える必要があります(GT>に置き換えてください)。

Syntax for Condition Expressionsを参照してください。 FilterExpressionの構文は、ConditionExpressionの構文と同じです。