DynamoDB 计数分组依据

Get*_*awn 5 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);
Run Code Online (Sandbox Code Playgroud)

sql 版本看起来像这样:

select ad_id, count(*) 
from dev_adsite_rating
where ad_id in(1039722, 1480)
group by ad_id;
Run Code Online (Sandbox Code Playgroud)

那么,有没有办法让我们实现这一目标?我在上面找不到任何东西。

Ray*_*Lin 1

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

  1. EQ ONLY 哈希键:要执行此类查询,您需要进行两个查询(即 ad_id EQ 1039722 / ad_id EQ 1480)
  2. 通过查询分页:由于 dynamodb 以增量方式返回结果集,因此您需要对结果进行分页。 在这里了解更多。
  3. 运行“Count”:您可以在对两个查询的结果进行分页时,从响应中获取“Count”属性并将其添加到运行总计中。查询接口