DynamoDB: запрос к столбцам, отсутствующим в схеме

У меня есть следующая таблица в моем DynamoDB

Thread (id, userId, content)

С id является первичным ключом. Я не определил ни одного ключа сортировки.

Теперь мне нужно получить результат на основе userId.. Короче говоря, мне нужны все записи в таблице, содержащие определенный userId

userId = '123';
let queryParams = {
  TableName: tableName,
  ExpressionAttributeNames: {
      '#userid': 'userid'
  },
  ExpressionAttributeValues: {
      ':userid': userId
  },
  KeyConditionExpression: "#userid = :userid" 
} 
dynamodb.query(queryParams, (err, data) => {
  console.log(err);
  console.log(data);
});

когда я запускаю это, я получаю ошибку

Could not load items: ValidationException: Query condition missed key schema element: id

Может кто-нибудь, пожалуйста, дайте мне знать, как я могу запросить все записи, содержащие userId '123'??

1 ответ

Решение

Для этого вам нужно добавить глобальный вторичный индекс в вашу таблицу, в которой в качестве первичного ключа используется userId. Затем вы можете запросить этот индекс напрямую.

Вы также должны включить имя индекса в запрос запроса ( источник).

Другие вопросы по тегам