gpt4 book ai didi

amazon-web-services - 无法使用 expression.NewBuilder() 正确过滤

转载 作者:数据小太阳 更新时间:2023-10-29 03:23:20 26 4
gpt4 key购买 nike

我正在使用以下 Go 代码在我的 dynamoDB 表中仅获取一个注册表,但它返回了所有注册表:

  condition1 := expression.Name("id").Equal(expression.Value(id))
condition2 := expression.Name("apiKey").Equal(expression.Value(apiKey))
projection := expression.NamesList(
expression.Name("data"),
)

expr, err := expression.NewBuilder().
WithFilter(condition1).
WithFilter(condition2).
WithProjection(projection).
Build()
if err != nil {
return "", err
}

req := svc.ScanRequest(&dynamodb.ScanInput{
TableName: aws.String(awsEnv.Dynamo_Table),
ExpressionAttributeNames: expr.Names(),
ExpressionAttributeValues: expr.Values(),
FilterExpression: expr.Filter(),
ProjectionExpression: expr.Projection(),
})

result, err := req.Send()
if err != nil {
// TODO
}
fmt.Println(result.Items)

这应该只包含一个注册中心,因为只有一个注册中心满足 id 过滤条件,但我得到的是所有注册中心。

我错过了什么吗?

最佳答案

ScanInput存在属性Setlimit(receive int64),你没有声明:

  req := svc.ScanRequest(&dynamodb.ScanInput{
Setlimit: 1,
TableName: aws.String(awsEnv.Dynamo_Table),
ExpressionAttributeNames: expr.Names(),
ExpressionAttributeValues: expr.Values(),
FilterExpression: expr.Filter(),
ProjectionExpression: expr.Projection(),
})

阅读更多: https://docs.aws.amazon.com/sdk-for-go/api/service/dynamodb/#ScanInput.SetLimit

关于amazon-web-services - 无法使用 expression.NewBuilder() 正确过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49177533/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com