로컬 보조 인덱스를 사용하여 쿼리를 수행하려고합니다 .... HashRangeKey를 지정하지 않으면 필수라고 말하는 오류가 발생합니다. 추가하면 범위 조건이 무시됩니다.로컬 보조 인덱스 (PHP)가 포함 된 AWS DynamoDB 쿼리
AWS "테이블 탐색기"에서 쿼리가 제대로 작동하는 것 같습니다. 따라서이 스크립트는 단순한 오류 또는 라이브러리와 관련된 것일뿐입니다.
유효성 검사 오류 : [HashKeyValue]는 필수 개체입니다. 복합 기본 키의 해시 구성 요소의 특성 값입니다. 여기에이 코드에 따르면
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,
)
*
: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LowLevelPHPQuerying.html 나는 HashKeyValue을 필요가 없습니다.이 실행하지만 그것은 단지 나에게 HashKeyValue
array(
'TableName'=>self::$_tableName,
'IndexName'=>'vote-index',
'HashKeyValue'=>array(
'N'=>$itemId,
),
'RangeKeyValue'=>array(
'N'=>$vote,
),
)
오류에 의해 필터링 된 결과를 제공합니다 제공되는 핵심 요소가 도움이 될 수있는 스키마
array(
'TableName'=>self::$_tableName,
'IndexName'=>'vote-index',
'HashKeyValue'=>array(
'N'=>$itemId,
),
'RangeKeyCondition'=>array(
'ComparisonOperator' => 'EQ',
'AttributeValueList' => array(
array('N'=>$vote),
),
),
)
아 감사합니다. 다행히도 이것은 아직 설계 단계에 있으므로 마이그레이션이 필요 없습니다. itemId를 해시로, ipAddress를 범위로, 표를 간단한 속성으로 표로 만드는 테이블을 다시 디자인했습니다. 그것은 고유 한 투표 유지 및 해시 키만 허용하는 것으로 보입니다. 투표를 표시하기위한 쿼리. – darknsf