【发布时间】:2015-02-21 04:37:30
【问题描述】:
是否可以在scanning DynamoDB 表时对结果进行排序,然后再将数据返回给用户?
在SQL 中,可以运行SELECT * FROM posts ORDER BY creationDate DESC 之类的查询。是否可以在AWS DynamoDB 中使用scan(或query,但我认为这行不通,因为我不知道哈希键值)?
虽然可以从数据库中获取所有结果,然后对它们进行排序,但我预计会有很多帖子。如果有很多帖子,那么会花费很多时间,因为我只想加载一定数量的帖子,直到用户决定加载更多。
有没有办法按range key 或local or global secondary index 对结果进行排序?
我正在尝试找到一个 hack 来解决似乎无法订购结果的事实,而不是寻找这样的东西:
AWSDynamoDBScanInput.order = NSSortDescriptor(key: "creationDate", ascending: true)
除非它存在,尽管从我所看到的情况来看,它似乎是不可能的。
看起来结果默认是按哈希键排序的,所以,我想将哈希键设置为项目创建日期,范围键为 UID,但AWS DynamoDB documentation 似乎警告不要这样做:
将哈希键设置为创建日期:
var creationDate: Int = Int(NSDate().timeIntervalSince1970)
随机 UID 的范围键可以对帖子进行排序?
scanning DynamoDB 表时是否可以排序结果?将创建日期(作为Int)设置为哈希键,将随机 UID 设置为范围键有效吗?有没有(更好的)hacks 可以用来绕过DynamoDB 没有排序功能的事实?
【问题讨论】:
标签: ios swift amazon-web-services amazon-dynamodb