2016-11-19 23 views
1

我無法使用過濾表達式使用邏輯andor在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" 
}