gpt4 book ai didi

java - 使用 QuerySpec 对索引进行查询时 Dynamodb 排序不起作用

转载 作者:行者123 更新时间:2023-12-02 04:08:15 24 4
gpt4 key购买 nike

我是 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)

但没有效果。

最佳答案

就像你的主hash_key和sort_key一样,你需要为GSI定义一个hash_key和sort_key,然后使用GSI的hash_key进行查询并根据GSI的sort_key进行排序

引用:https://aws.amazon.com/blogs/database/how-to-use-dynamodb-global-secondary-indexes-to-improve-query-performance-and-reduce-costs/

关于java - 使用 QuerySpec 对索引进行查询时 Dynamodb 排序不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56704163/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com