Amazon web services 如何将数组存储到dynamoDB表中
我有以下结构:Amazon web services 如何将数组存储到dynamoDB表中,amazon-web-services,go,amazon-dynamodb,Amazon Web Services,Go,Amazon Dynamodb,我有以下结构: type User struct { ID string `json:"id"` Name string `json:"name"` LastName string `json:"lastName"` User string `json:"user"` Password string `json:"password"` Vehicles []Vehicle `json:"vehicles"` } t
type User struct {
ID string `json:"id"`
Name string `json:"name"`
LastName string `json:"lastName"`
User string `json:"user"`
Password string `json:"password"`
Vehicles []Vehicle `json:"vehicles"`
}
type Vehicle struct {
Plate string `json:"plate"`
}
我想在我的DynamoDB中存储一系列车辆。我做了一些研究,发现我应该使用以下代码:
input := &dynamodb.PutItemInput{
TableName: aws.String(tableUsers),
Item: map[string]*dynamodb.AttributeValue{
"id": {
S: aws.String(fmt.Sprintf("%v", uuid)),
},
"name": {
S: aws.String(user.Name),
},
"lastName": {
S: aws.String(user.LastName),
},
"user": {
S: aws.String(user.User),
},
"password": {
S: aws.String(user.Password),
},
"vehicles": {
L: [{
M: {
"plate": {S: aws.String("test")},
},
}],
},
},
}
但我一直有一个语法错误:
L: [{
M: {
"plate": {S: aws.String("test")},
},
}],
我做错了什么?如果你看看dynamodb的godoc: 您可以看到字段L具有以下类型:[]*AttributeValue 创建切片时,应指定其类型。 因此,对于您的情况,它是:
L: []*dynamodb.AttributeValue{
{
M: map[string]*dynamodb.AttributeValue{
"plate": {S: aws.String("test")}
}
}
}
如果您想更好地理解struct、slices和map,您可以阅读以下文章:
如果你看看dynamodb的godoc: 您可以看到字段L具有以下类型:[]*AttributeValue 创建切片时,应指定其类型。 因此,对于您的情况,它是:
L: []*dynamodb.AttributeValue{
{
M: map[string]*dynamodb.AttributeValue{
"plate": {S: aws.String("test")}
}
}
}
如果您想更好地理解struct、slices和map,您可以阅读以下文章: