У меня есть запрос 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
для запроса диапазона на ключе сортировки