Фильтрация DynamoDB: сканирование с выражением фильтра для единственной записи в Типе Списка - PullRequest
0 голосов
/ 23 апреля 2020

Я пытаюсь построить выражение фильтра для моей таблицы DynamoDB для использования при сканировании в javascript лямбда-функции. Моя схема таблицы имеет поле с именем dateRange, которое имеет следующую структуру (это только пример, может быть любое количество элементов, не всегда 4):

enter image description here

Я хочу вернуть все элементы в моей таблице, для которых первая строка date в dateRange больше некоторой фиксированной даты. Возможно ли это и если да, то как будет выглядеть FilterExpression? Я в основном ищу что-то вроде FilterExpression: "#dateRange[0] >= :fixedDate.

1 Ответ

2 голосов
/ 23 апреля 2020

JMLdev Я могу честно сказать вам, что использование вами базы данных SQL не должно быть преступлением, ха-ха.

НЕТ! Это не так, как мы делаем Нет SQL. Ваше первое значение должно быть ключом Range, просто дублируйте значение в других атрибутах. Хранилище дешевое, сканирование дорогое, вы хотите смоделировать свою базу данных № SQL, чтобы оптимизировать ее для извлечения информации, не экономя крошечное пространство, а затем сканировать всю БД.

Так что дублируйте атрибут, сделайте LSI, если необходимо, с dateRange1 в качестве ключа диапазона (или GSI, если вам нужно), и вы хороши для go. Если первое значение является каким-то особым значением, тогда вы можете просто взять первое значение из этого списка, тогда жизнь будет проще, если вы захотите свою команду! счастливого кодирования.

...