我是Dynamodb的新手,下面有一张桌子
Primary partition key id (String)
Primary sort key partition_id (Number)
GSI status (String)
我正在尝试根据ID和状态获取记录,但按partition_id的排序顺序
Iterator<Item> iter = index.query(new QuerySpec()
.withKeyConditionExpression("#f = :status")
.withFilterExpression(#id = :id)
.withNameMap(new NameMap().with("#f", status ).with("#id", ID))
.withValueMap(new ValueMap()
.withString(":status", "SENT")
.withString(":id", "1d081455-d333-4bb8-b541-6e8fec58013d"))
).iterator();
查询工作正常,但是我没有得到排序后的结果。你能告诉我缺少什么吗?
我尝试了.withScanIndexForward(true)之类的选项 .withMaxResultSize(1)
但没有效果。
答案 0 :(得分:0)
就像您的主要hash_key和sort_key一样,您需要为GSI定义hash_key和sort_key,然后使用GSI的hash_key进行查询并根据GSI的sort_key进行排序