我正在使用DynamoDB和zend框架。
我可以使用此方法从普通表中获取行。
$response['Items'] = $this->dbClient->query(
array(
"TableName" => "user",
"KeyConditions" => array(
"userId" => array(
"ComparisonOperator" => ComparisonOperator::EQ,
"AttributeValueList" => array(
array(Type::NUMBER => 2))
)
)
)
);
但是如何根据全局二级索引获取信息。 我在这个表Id和电子邮件中有两个字段。
我想基于电子邮件进行搜索并从全球二级索引表中获取Id。我想使用此id从主用户表中获取用户的所有其他信息。我想在本地DynamoDB中执行此操作。
如何根据zend框架中的Global二级索引表中的电子邮件获取ID?
答案 0 :(得分:1)
您只需在查询时添加索引名称,但在您的全局索引中,电子邮件应为哈希,此处将投影所有属性。
$response = $this->dbClient->query(
array(
"TableName" => "user",
"IndexName" => "index name",
"KeyConditions" => array(
"email" => array(
"ComparisonOperator" => ComparisonOperator::EQ,
"AttributeValueList" => array(
array(Type::STRING => "email@abc.com"))))));
然后你可以获取userId