Условие ключа Dynamodb с операцией AND для части ключа сортировки (для диапазона ключей сортировки) - PullRequest
0 голосов
/ 10 июня 2019

У меня есть запрос 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,все хорошо.Дело в том, что я не могу использовать GE и LE.BETWEEN не включает время начала и окончания.Чтобы включить их, мне нужно использовать

  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)

tmpCond из sortKey неверен.Динамо выдает следующую ошибку, когда я пытаюсь выполнить Build()

andBuildKeyCondition error: invalid parameter: В основном динамо не удовлетворено тем, как я комбинирую условие AND для запроса диапазона на ключе сортировки

...