是否可以在 AWS DynamoDB 中运行大于查询?

kar*_*tik 7 amazon-web-services amazon-dynamodb dynamodb-queries

假设我有这样的 DynamoDB 表,并Order ID作为主键。:

表格截图


Order ID每次我添加/放置新项目时,都会增加一。

现在,我有一个数字,比方说,我的用户想要获取所有具有>1000的项目。因此返回的项目将为、、、 等等,直到最后一项。Order ID 1000100110021003


我的要求就像看起来一样简单 - 但这件事可以用QueryAWS DynamoDB 的方法来做吗?

感谢任何帮助:) 谢谢!

Zac*_*les 8

目前无法对分区键进行过滤,但我可以建议一种可以实现您想要的效果的方法。

您正朝着正确的方向前进,其中Query有一个“大于”运算符。但是,它仅对排序键属性进行操作。

使用 Query,您实质上选择一个分区键,并提供一个应用于该分区内项目的排序键的筛选表达式。
由于您的分区键当前是“订单 ID?”,因此您需要添加全局二级索引来按照您想要的方式进行查询。

在不了解有关访问模式的更多信息的情况下,我建议您使用“From”作为分区键(我假设是用户 ID)添加全局二级索引。然后,您可以使用“订单 ID”作为排序键。

我的用户想要获取订单 ID > 1000 的所有商品。

有了 GSI,您可以通过查询项目 where 来实现这一点"User ID" is userId and "Order ID" > orderId

您可以在此处找到有关查询的更多信息,在此处找到有关添加 GSI 的详细信息,以及在此处找到有关选择分区键的更多信息。