загрузка DynamoDb не работает с таблицей, имеющей как ключ хеша, так и ключ диапазона - PullRequest
0 голосов
/ 25 октября 2018

У меня есть таблица, в которой есть и хэш-ключ, и ключ диапазона.Таблица в настоящее время пуста, и я пытаюсь получить значение из таблицы, используя load (), передавая hashkey в качестве аргумента, но она ничего не возвращает.Ни я не получаю NULL, ни каких-либо исключений.Просто ничего не происходит.

Но если я использую query () и, по крайней мере, использую выражение запроса, я получаю список, и его размер равен 0, что ожидается.

Я не могу обернуть голову вокругПервый сценарийЧто происходит неправильно?Как будто мы не можем использовать load (hashkey), если в таблице есть и ключ хеша, и ключ диапазона, или я упускаю что-то важное?

1 Ответ

0 голосов
/ 25 октября 2018

Вы получите сообщение об ошибке, если я думаю, что есть предмет.Load ищет конкретный элемент, точно соответствующий первичному ключу, но ключ hash+range - это ваш составной первичный ключ, а не только ключ hash.Таким образом, вы не можете просто попросить элемент, дающий только ключ hash, когда у вас есть составные первичные ключи.Для этого hash может быть несколько значений, но вы пытаетесь набрать load, который стремится к одному элементу.Все, что вы можете сделать, это query, потому что тогда у вас есть несколько элементов

|  HashKey  |  RangeKey | 
|:---------:|----------:|
| SomeHash1 |  Range1   |
| SomeHash1 |  Range2   |
| SomeHash1 |  Range3   |
| SomeHash2 |  Range1   |

Изображение, которое вы хотите load SomeHash1.Есть 3 элемента, но load предназначен для получения элемента с первичным ключом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...