DynamoDB:Filter Expression只能包含非主键属性

时间:2017-01-14 02:08:38

标签: amazon-dynamodb boto3

我可以通过DynamoDB控制台查询GSI,如屏幕截图所示。

Screenshot: the query

当我使用以下代码在终端上使用Boto3运行相同的查询时:

table.query(
    IndexName='date-timestamp-index',
    KeyConditionExpression=Key('date').eq('20161231'),
    FilterExpression=Attr('timestamp').between(1483130000, 1483133600) & Attr('tags').exists()
)

我收到ValidationException例外:

Filter Expression can only contain non-primary key attributes: Primary key attribute: timestamp

我在这里做错了什么?感谢。

1 个答案:

答案 0 :(得分:4)

您的timestamp字段是表的排序键,因此无法在FilterExpression中使用。它必须是KeyConditionExpression的一部分。