У меня в DynamoDB есть следующая таблица
Thread (id, userId, content)
Идентификатор является первичным ключом. Я не определил никакого ключа сортировки.
Теперь мне нужно получить результат на основе userId. Короче говоря, мне нужны все записи в таблице, содержащие конкретный userId.
userId = '123';
let queryParams = {
TableName: tableName,
ExpressionAttributeNames: {
'#userid': 'userid'
},
ExpressionAttributeValues: {
':userid': userId
},
KeyConditionExpression: "#userid = :userid"
}
dynamodb.query(queryParams, (err, data) => {
console.info(err);
console.info(data);
});
когда я запускаю это, я получаю сообщение об ошибке
Could not load items: ValidationException: Query condition missed key schema element: id
Может кто-нибудь, дайте мне знать, как я могу запросить все записи, содержащие userId '123'?





Для этого вам понадобится добавить глобальный вторичный индекс для вашей таблицы, которая имеет userId в качестве первичного ключа. Затем вы можете напрямую запросить этот индекс.
Вы также должны включить имя индекса в запрос запроса (источник).
Не могли бы вы добавить вышеупомянутое в свой исходный ответ, чтобы я мог его принять ... Это работает, спасибо за помощь!
В предоставленном вами образце кода не указано имя индекса. Вы должны включить имя индекса, чтобы запросить индекс. См. docs.aws.amazon.com/amazondynamodb/latest/developerguide/…