适用于dynamodb的Golang包,具有地图,列表和JSON支持

时间:2014-10-15 09:19:49

标签: go amazon-dynamodb

我尝试在dynamodb中保存JSON对象,使用新添加的JSON类型支持(我的理解是JSON类型基本上是地图+列表),这样我就可以查询和修改嵌套的JSON文档。

我无法通过新增数据类型支持找到任何针对dynamodb的golang软件包。

对此有何建议?

4 个答案:

答案 0 :(得分:2)

包含DynamoDB的新亚马逊支持的Golang API位于:https://github.com/awslabs/aws-sdk-go

答案 1 :(得分:1)

围绕此问题的SDK文档有点模糊,我发现这有用.NET: Document Model

答案 2 :(得分:0)

要将JSON放在aws-dynamodb中,我们首先需要迭代JSON结构的每个属性,并按以下方式将其转换为dynamodb.AttributeValue:

:hi

答案 3 :(得分:0)

从 sdk 的第 2 版开始,specific package has been exposed。这使得将任何接口转换为 attributevalue.MarshalMap(r) 变得更加容易。

按照他们的例子:

type Record struct {
    ID     string
    URLs   []string
}

//...

r := Record{
    ID:   "ABC123",
    URLs: []string{
        "https://example.com/first/link",
        "https://example.com/second/url",
    },
}
av, err := attributevalue.MarshalMap(r)
if err != nil {
    return fmt.Errorf("failed to marshal Record, %w", err)
}

_, err = client.PutItem(context.TODO(), &dynamodb.PutItemInput{
    TableName: aws.String(myTableName),
    Item:      av,
})
if err != nil {
    return fmt.Errorf("failed to put Record, %w", err)
}