为了账号安全,请及时绑定邮箱和手机立即绑定

不支持查询键条件

不支持查询键条件

Go
慕码人2483693 2023-06-19 15:40:38
我试图让所有行都超过某个时间戳。我也尝试在条件中使用“GE”、“LE”、“GT”,但出现语法错误。我收到以下 DynamoDB 错误:Internal Server Error [ValidationException: Query key condition not supported    status code: 400,我有下表Table name  GroupsLambda3Primary partition key   id (String)Primary sort key    -Point-in-time recovery  DISABLEDEnableEncryption Type DEFAULTManage EncryptionKMS Master Key ARN  Not ApplicableTime to live attribute  DISABLEDManage TTL然后我创建了一个二级索引Name: unix_time-indexStatus: ActiveType: GSIPartition Key: unix_time (Number)Sort Key: unix_time-index最后我的 Golang 代码是:    var cond string    cond = "unix_time <= :v_unix_time"    var projection string    projection = "id, num_users, salesforce_campaign, unix_time"    input := &dynamodb.QueryInput{        TableName:              aws.String(table),        IndexName:              aws.String("unix_time-index"),        KeyConditionExpression: &cond,        ProjectionExpression:   &projection,        ExpressionAttributeValues: map[string]*dynamodb.AttributeValue{            ":v_unix_time": {                N: aws.String("1558130473454419"),            },        },当我这样做时,代码有效cond = "unix_time = :v_unix_time",仅等于。我希望所有行都具有较小的 unix_timestamp。
查看完整描述

1 回答

?
慕容708150

TA贡献1831条经验 获得超4个赞

您应该使用表达式生成器:


// todo: please check if value should be converted to another type in your case

keyCond := expression.Key("unix_time").LessThenEqual(expression.Value("1558130473454419"))

proj := expression.NamesList(expression.Name("id"), expression.Name("num_users"), expression.Name("salesforce_campaign"), expression.Name("unix_time"))


expr, err := expression.NewBuilder().

    WithKeyCondition(keyCond).

    WithProjection(proj).

    Build()

if err != nil {

    fmt.Println(err)

}


input := &dynamodb.QueryInput{

    ExpressionAttributeValues: expr.Values(),

    KeyConditionExpression:    expr.KeyCondition(),

    ProjectionExpression:      expr.Projection(),

    TableName:                 aws.String(table),

}


查看完整回答
反对 回复 2023-06-19
  • 1 回答
  • 0 关注
  • 104 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信