2016-11-19 2 views
1

Я не могу получить элемент с помощью filterExpression, используя логический and или or в Dyanamodb php, используя aws sdk. может ли любой из них предоставить код с правильным синтаксисом для извлечения элемента, удовлетворяющего условию.dynanmo db filterexpression с несколькими условиями php

$scan_response = $dynamodb->scan(array(
    'TableName' => $tableName, 
    'ExpressionAttributeValues' => [ 
     ':val1' => ['S' => '20'], 
     ':val2' => ['S' => 'ajay'], 

    'FilterExpression' => 'age = :val1 AND name = :val2' 
])); 

я получаю ошибку, что

filterExpression должен быть ассоциативным массивом

Заранее спасибо

ответ

0

попробовать этот

$scan_response = $dynamodb->scan(array(
    'TableName' => $tableName, 
    'ExpressionAttributeValues' => [ 
     ':val1' => ['S' => '20'], 
     ':val2' => ['S' => 'ajay']], 

    'FilterExpression' => 'age = :val1 AND name = :val2' 
)); 

плохо размещены закрытия ] создает

array(2) { 
    ["TableName"]=> 
    string(3) "..." 
    ["ExpressionAttributeValues"]=> 
    array(3) { 
    [":val1"]=> 
    array(1) { 
     ["S"]=> 
     string(2) "20" 
    } 
    [":val2"]=> 
    array(1) { 
     ["S"]=> 
     string(4) "ajay" 
    } 
    ["FilterExpression"]=> 
    string(28) "age = :val1 AND name = :val2" 
    } 
} 

вместо необходимости

array(3) { 
    ["TableName"]=> 
    string(3) "..." 
    ["ExpressionAttributeValues"]=> 
    array(2) { 
    [":val1"]=> 
    array(1) { 
     ["S"]=> 
     string(2) "20" 
    } 
    [":val2"]=> 
    array(1) { 
     ["S"]=> 
     string(4) "ajay" 
    } 
    } 
    ["FilterExpression"]=> 
    string(28) "age = :val1 AND name = :val2" 
} 
Смежные вопросы