当前位置: 首页 > 知识库问答 >
问题:

如何仅使用分区密钥从aws Dynamodb获取数据?

斜宁
2023-03-14

我正在使用aws sdk go库实现Golang的DynamoDb连接。

我的DynamoDb表有一个分区键DeviceId(String)和一个排序键Time(Number)。如何编写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)

共有2个答案

郭麒
2023-03-14

在这种情况下可以使用查询操作
下面是一个通用的例子

compositeKey := entity.GetPrimaryKey(inputVar)
expressionAttributeValues := map[string]*dynamodb.AttributeValue{
    ":v1": {
        S: aws.String(compositeKey.PartitionKey.Data.(string)),
    },
}
queryInput := dynamodb.QueryInput{
    TableName:                 &d.TableName,
    KeyConditionExpression:    aws.String("id = :v1"),
    ExpressionAttributeValues: expressionAttributeValues,
}
queryOutput, err := d.DdbSession.Query(&queryInput)
if err != nil {
    log.Error("error in fetching records ", err)
    return nil, err
}

// unmarshal the query output - items to interface

err = dynamodbattribute.UnmarshalListOfMaps(queryOutput.Items, &yourInterface)
夹谷弘亮
2023-03-14

您必须使用查询或扫描操作,这是一个简单的示例,但您可以在这里阅读更多关于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
}
 类似资料:
  • 问题内容: 我在Golang中使用aws-sdk-go库进行DynamoDb连接。 我的DynamoDb表具有分区键DeviceId(字符串)和排序键时间(数字)。如何编写GetItemInput以获取具有特定DeviceId的所有数据? 问题答案: 您必须使用查询或扫描操作,这是一个简单的示例,但是您可以在此处阅读有关Amazon文档的更多信息。 特别是查询操作 查询操作仅使用主键属性值在表或辅

  • 我从服务器获得了以下jwks 我有一个加密的令牌。我想用上面的jwk解密它。如何从上述jwk中获取公钥。我从楼梯上走下来https://auth0.com/docs/quickstart/backend/rails/01-authorization.但上述jwk中缺少x5c(证书)。 我想知道在jwk中没有x5c如何获取公钥。

  • 问题内容: 我尝试从KeyStore获取密钥。我通过Keytool创建了一个密钥库: keytool -genkeypair -dname“ cn = Mark Jones,ou = JavaSoft,o = Sun,c = US” -alias business2 -keypass abcdtest -keystore C:\ workspace \ XMLSample \ keystore \

  • 我在使用来自Firebase的新FiRecovery时遇到了问题。 情境:我有一个 我使用集合(“房间”)创建房间。添加(房间) 我想做的是:我需要更新一个房间。 为此,我使用:<代码>集合('room')。doc(房间ID)。更新(update) 因此,我需要在我的收藏中的文档中添加ROOM\u ID: 有没有可能实现这一目标? 另一种方法是为自己创建一个生成的ID: 但我想避免它。

  • 是否可以使用CloudFormation使用别名获得KMS密钥ARN?我想对我的AWS帐户中的一个密钥赋予特定的权限。 像下面这样的?

  • 我使用了另一个测试API,它工作正常,但在这里,当我使用我的KEY实际API时,它没有得到任何数据。 我的服务 我的回顾 这是文档的链接,我做了他们写的东西。文档