DynamoDB计数组

时间:2015-05-26 17:05:25

标签: php amazon-dynamodb

我们正在尝试搜索一个dynamodb,并且需要计算一个分组中的对象数,这怎么可以呢?

我试过这个,但是当添加第二个数字时,这不起作用:

$search = array(
    'TableName'     => 'dev_adsite_rating',
    'Select'        => 'COUNT',
    'KeyConditions' => array(
        'ad_id' => array(
            'ComparisonOperator' => 'EQ',
            'AttributeValueList' => array(
                array('N' => 1039722, 'N' => 1480)
            )
        )
    )
);
$response = $client->query($search);

sql版本看起来像这样:

select ad_id, count(*) 
from dev_adsite_rating
where ad_id in(1039722, 1480)
group by ad_id;

那么,我们有办法实现这一目标吗?我找不到任何东西。

1 个答案:

答案 0 :(得分:1)

尝试在DynamoDB上执行这样的查询比在SQL世界中稍微复杂一些。要执行这样的操作,您需要考虑一些事情

  1. EQ ONLY Hash Key :要执行此类查询,您需要进行两次查询(即ad_id EQ 1039722 / ad_id EQ 1480)
  2. 通过查询分页:由于dynamodb以递增方式返回结果集,因此您需要对结果进行分页。 Learn more here.
  3. 运行“计数”:您可以从响应中获取“计数”属性,并在对两个查询的结果进行分页时将其添加到运行总计中。 Query API