微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

查询 GSI 排序键并过滤小于当前时间的值

如何解决查询 GSI 排序键并过滤小于当前时间的值

我有一个问题陈述,我需要从当前时间戳中获取早于 5 天的所有数据。

我在 updatetimestamp 上创建了一个 GSI,现在我想在 GSI 上过滤/查询提取所有少于 5 天的记录。

Map<String,AttributeValue> eav = new HashMap<String,AttributeValue>();
    eav.put(":val1",new AttributeValue().withS(getCurrentDateTimeInUTC()));

    DynamoDBQueryExpression<GuaranteedWakeup> queryExpression = new DynamoDBQueryExpression<GuaranteedWakeup>()
        .withIndexName(Constants.UPDATE_TIMESTAMP_GSI_NAME)
        .withConsistentRead(false)
        .withKeyConditionExpression("updateTimestamp < :val1")
        .withExpressionAttributeValues(eav);
//    DynamoDBScanExpression scanExpression = new DynamoDBScanExpression().withConsistentRead(true);
    List<GuaranteedWakeup> scanResult = mapper.query(GuaranteedWakeup.class,queryExpression);

我收到异常,因为错误请求不支持查询键条件。我怎样才能达到同样的目标。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。