Я пытаюсь выполнить запрос к своей таблице, используя только ключ раздела и игнорируя ключ сортировки, но не получаю никаких элементов.
Мой глобальный вторичный индекс выглядит так:
И это мой запрос:
const params = {
ExpressionAttributeValues: {
':app': 'app',
},
IndexName: 'glc-development-gsi1',
KeyConditionExpression: 'sk = :app',
TableName: this.tableName,
};
return new Promise((resolve, reject) => {
this.client.query(params, (err, data) => {
console.info(data);
if (err) {
reject(err);
} else {
resolve(data);
}
});
});
Согласно всей документации, которую я прочитал, и другим вопросам здесь, это должно работать, и я не могу понять, почему это не так. Скан из моего индекса тоже пустой.
Наконец нашел свое решение. DynamoDB хранит данные в индексах только тогда, когда определены и ключ секции, и ключ сортировки, поэтому мой индекс все время был пуст. Запрос был в порядке.
Разве параметры не должны быть такими: ``` const params = { ExpressionAttributeValues: { ":app": { S: "app" } }, IndexName: 'glc-development-gsi1', KeyConditionExpression: 'sk = :app' , ИмяТаблицы: this.tableName, }; ```