Trying to do a query with my local secondary index.... If I don't specify the HashRangeKey, I get an error saying it's required. If I add it, then it ignores the range condition.
The query seems to work fine in AWS "Table Explorer", so I think it is just a simple error or something with the library.
Validation errors: [HashKeyValue] is a required object: Attribute value of the hash component of the composite primary key.
array(
'TableName'=>self::$_tableName,
'IndexName'=>'vote-index',
'KeyConditions' => array(
'itemId' => array(
'ComparisonOperator' => 'EQ',
'AttributeValueList' => array(
array('N'=>$itemId),
),
),
'vote' => array(
'ComparisonOperator' => 'EQ',
'AttributeValueList' => array(
array('N'=>$vote),
),
),
),
'Count' => true,
)
*According to this code here: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LowLevelPHPQuerying.html I shouldn't need a HashKeyValue.
This runs but it only gives me the results filtered by the HashKeyValue
array(
'TableName'=>self::$_tableName,
'IndexName'=>'vote-index',
'HashKeyValue'=>array(
'N'=>$itemId,
),
'RangeKeyValue'=>array(
'N'=>$vote,
),
)
Error: The provided key element does not match the schema
array(
'TableName'=>self::$_tableName,
'IndexName'=>'vote-index',
'HashKeyValue'=>array(
'N'=>$itemId,
),
'RangeKeyCondition'=>array(
'ComparisonOperator' => 'EQ',
'AttributeValueList' => array(
array('N'=>$vote),
),
),
)