我是AWS新手,我正在发现dynamoDB。我的桌子有一些预先注册的项目。现在我想说,例如,通过筛选每个项目得到的3个“表达式”(或键)中的两个来获得结果:“Id”和“Name”(3中的2,第3个是日期)。所以,我想按照“日期”排序。我为每个注册了时间戳的项目设置了自己的“日期”。如何在使用dynamodb查询时订购结果?
我可以通过使用“扫描”方法获取结果,但它并不是我真正想要的,因为数据不是订购者。
那么如何组织我的结果按日期键排序呢?
任何帮助将高度赞赏
我是AWS新手,我正在发现dynamoDB。我的桌子有一些预先注册的项目。现在我想说,例如,通过筛选每个项目得到的3个“表达式”(或键)中的两个来获得结果:“Id”和“Name”(3中的2,第3个是日期)。所以,我想按照“日期”排序。我为每个注册了时间戳的项目设置了自己的“日期”。如何在使用dynamodb查询时订购结果?
我可以通过使用“扫描”方法获取结果,但它并不是我真正想要的,因为数据不是订购者。
那么如何组织我的结果按日期键排序呢?
任何帮助将高度赞赏
DynamoDB将返回你排序的结果,当你有一个设置了一个Composite Primary Key表或索引。这意味着两个属性用于创建密钥。第一个属性是分区键,第二个属性是Sort键,它将结果排序在分区内。
适应他们为榜样,以你的,想象一下你有一个歌曲目录,并具有以下主要架构全局二级索引: Songs Table: - ArtistID (partition key) - SongName (sort key) - Timestamp (an attribute) SongsByArtistIndex (Global Secondary Index on the Songs table): - ArtistID (partition key) - Timestamp (sort key) - SongName (a projected attribute)
在这个例子中,您可以运行两种类型的查询,根据你的能力&希望根据不同的属性进行排序。
您可能需要更改表格的关键模式,以针对您的方案所需的排序查询/访问模式进行优化。记住,你只能在一个分区内排序。那有意义吗?
更多信息: DynamoDB Query Method,Query & Scan Operations in DynamoDB
感谢回答。我创建了一个新表,并将Id定义为分区键和时间作为排序键。然而,参赛作品总是随机排列的。当我试图通过lambda测试函数来检验我的数据时,我也无法使用de查询方法。我只能使用扫描。当我使用查询时,我得到一个空返回值。 –
据我所知,在Lambda代码中执行查询没有限制。请参阅http://docs.aws.amazon.com/amazondynamodb/latest/gettingstartedguide/GettingStarted.NodeJs.04.html。 – readyornot
关于做你的餐桌钥匙,你有同样的ID有多少项?请记住,您的排序是在分区键内发生的。 – readyornot