我正在尝试使用 UpdateItem
方法将表项字段的值设置为 map 。这是我尝试过的:
type myStruct {
name string
}
myStructInstance := myStruct{name: "foo"}
_, err := svc.UpdateItem(&dynamodb.UpdateItemInput{
TableName: aws.String("MyTable"),
Key: myKey,
ExpressionAttributeValues: map[string]*dynamodb.AttributeValue{
":m": {
M: dynamodbattribute.MarshalMap(*myStructInstance),
},
},
UpdateExpression: aws.String("SET myField = :m"),
})
有了这个,我不断收到错误:
multiple-value dynamodbattribute.MarshalMap() in single-value context
我做错了什么?
最佳答案
啊,我忘了 MarshalMap
函数有两个返回值,所以我必须这样做:
av, err := dynamodbattribute.MarshalMap(*myStructInstance)
_, err = svc.UpdateItem(&dynamodb.UpdateItemInput{
TableName: aws.String("MyTable"),
Key: myKey,
ExpressionAttributeValues: map[string]*dynamodb.AttributeValue{
":m": {
M: av,
},
},
UpdateExpression: aws.String("SET myField = :m"),
})
关于go - 使用 Go SDK,如何将 DynamoDB 表项字段设置为 map ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51294877/