DynamodB запрос нескольких значений из GSI - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть динамическая таблица БД (id (pk), имя (sk), электронная почта, дата, itemId (число)) и GSI on (itemId pk, date (sk), пытающийся запросить массив itemIds [1 , 2,3,4] но получаю ошибку с помощью оператора IN в KeyExperssionValue при выполнении

aws .DocClient.query

 const IdsArrat = [1,2,3,4,5];
 const query: {
  IndexName: 'accountId-createdAt-index',
  KeyConditionExpression: 'itemId IN (:a1,:a2,:a3)',
  ExpressionAttributeValues: {
    {
        ':a1':1,
        ':a2':2,
          .......
    }
  },
  ScanIndexForward: false,
},

получаю ошибку с помощью оператора IN в.

Это возможно запросить несколько значений в GSI в DynamoDb?

1 Ответ

0 голосов
/ 17 апреля 2020

Вы пытаетесь запросить несколько разных ключей секционирования в GSI. Это можно сделать только с помощью нескольких отдельных запросов (3 в примере). С GSI также возможно, что для одного поиска ключа раздела будет возвращено несколько значений, поэтому лучше запросить ключ раздела "itemId" по отдельности.

См. Следующее для справки: https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html#DDB -QUERY-запроса KeyConditionExpression

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