我在Golang中使用aws-sdk-go库进行DynamoDb连接。
我的DynamoDb表具有分区键DeviceId(字符串)和排序键时间(数字)。如何编写GetItemInput以获取具有特定DeviceId的所有数据?
params := &dynamodb.GetItemInput{ Key: map[string]*dynamodb.AttributeValue { "DeviceId": { S: aws.String("item_1"), }, }, ExpressionAttributeNames: map[string]*string{ "DeviceId": "DeviceId", }, TableName: aws.String("DbName"), } list, err := svc.GetItem(params)
您必须使用查询或扫描操作,这是一个简单的示例,但是您可以在此处阅读有关Amazon文档的更多信息。
特别是查询操作
查询操作仅使用主键属性值在表或辅助索引中查找项目
var queryInput = &dynamodb.QueryInput{ TableName: aws.String(dynamoRestDataTableName), KeyConditions: map[string]*dynamodb.Condition{ "DeviceId": { ComparisonOperator: aws.String("EQ"), AttributeValueList: []*dynamodb.AttributeValue{ { S: aws.String("aDeviceId"), }, }, }, }, } var resp, err = dynamoSvc.Query(queryInput) if err != nil { return nil, err }