私はいくつかのレコードとの日付からなるテーブルを持っています(エポックからミリ秒単位で格納され、N
タイプ)。日付でDynamoDbを照会またはスキャンできない
今日の日付より前に作成されたすべてのレコードを照会できるようにしたいと思いますが、それに多くの問題があります。
created_on
にグローバルセカンダリインデックスを追加しようとしましたが、式created_on <= :v1
でクエリを実行しようとしました。しかし、これはエラーを与えましたcom.amazonaws.AmazonServiceException: Query key condition not supported
私はいくつかのグーグルが、フィルタ式でクエリではなくスキャンを使用する必要があると私に信じさせました。だから今私はしようとしています:
Map<String, AttributeValue> args = //build map with key ':v1' and value of date's timestamp here
DynamoDBScanExpression q = new DynamoDBScanExpression()
.withIndexName('created_on-index')
.withFilterExpression("created_on > :v1")
.withExpressionAttributeValues(args);
return mapper.scan(type, q);
これはエラーなしで実行されますが、0レコードを返します。私は、返されるミリ秒が今日の日付であることを確認しました。条件に一致するレコードが3つあります。
アイデア?