2016-11-19 73 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" 
}