登录
首页 >  Golang >  Go问答

DynamoDB 按 Scan 函数中的特定字段排序

来源:stackoverflow

时间:2024-04-18 12:27:33 319浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个Golang开发实战,手把手教大家学习《DynamoDB 按 Scan 函数中的特定字段排序》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

问题内容

我在 dynamodb 中有数据:

data = []Data{
   {
       "Name": "foo",
       "Number: 12,
   },
   {
       "Name": "baz",
       "Number: 34,
   },
}

item, _:= attributevalue.MarshalMap(data)
_, err := dynamoDbClient.PutItem(context.TODO(), &dynamodb.PutItemInput{
    TableName: aws.String("tablename"), 
    Item: item,
})

现在我使用 scan 来对数据进行分页、过滤和排序。分页和过滤已完成,现在我遇到排序问题。当我同时对数据进行分页时,我不知道如何按特定键形式 item 进行排序,例如 numbername ?也许有人有类似的问题并解决了?


正确答案


在 dynamodb 中,您只能按排序键属性进行排序。此外,返回的数据仅保证按分区键(项目集合)在其组中排序。这本质上意味着您在使用 scan api 时无法检索排序顺序。

下面是如何返回数据的示例:

pk sk data
1 a some-data
1 b some-data
1 c some-data
1 z some-data
2 a some-data
2 g some-data
2 l some-data
2 z some-data

如您所见,数据仅根据分区键进行排序,因此执行 scan 时您无法获得按排序键排序的所有项目。

以上就是《DynamoDB 按 Scan 函数中的特定字段排序》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>