1

我正在使用 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 框架中的全局二级索引表的电子邮件获取 id?

4

1 回答 1

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

于 2014-01-09T08:03:43.633 回答