Dynamodb KeyCondition,对排序键部分进行AND操作(用于排序键范围)

时间:2019-06-09 22:49:33

标签: amazon-dynamodb aws-sdk dynamodb-queries aws-sdk-go

我有一个适用于我的dynamodb查询。分区键是“名称”,排序键是“创建”。以下条件很好

partitionKeyCondition := expression.Key("name").
        Equal(expression.Value("myname"))

sortKeyCondition := expression.Key("created").
        Between(expression.Value(startTime),
        expression.Value(endTime))

那我就能成功做到这一点

andKeyCondtition:= partitionKeyCondition.And(sortKeyCondition)
expr, err := expression.NewBuilder().
        WithKeyCondition(andKeyCondtition).
        Build()

我的主要问题是sortKeyCondition,因为当我使用BETWEEN时,一切都很好。介于两者之间的是,我不能使用GELEBETWEEN不包括开始时间和结束时间。要包括它们,我需要使用

  expression.Key("created").
        GreaterThanEqual(expression.Value(startTime))

我现在如何合并LessThanEqual?显然,我做不到

   sortKeyCondition5 := expression.KeyGreaterThanEqual(expression.Key(
        "created"), expression.Value(startTime))

    sortKeyCondition6 := expression.KeyLessThanEqual(expression.Key(
        "created"), expression.Value(endTime))
    tmpCond := sortKeyCondition5.And(sortKeyCondition6)

sortKey的tmpCond不正确。当我尝试执行Build()

时,Dynamo出现以下错误

andBuildKeyCondition error: invalid parameter: 基本上,发电机对我在排序键上组合AND条件进行范围查询的方式不满意

0 个答案:

没有答案