Я пытаюсь получить одну запись из таблицы DynamoDB, используя столбец, определенный как ключ RANGE
, но когда я это получаю, я получаю эту ошибку:
The provided key element does not match the schema
Вот как яm создание и заполнение таблицы:
// Create words table
if(!tableExists('words')) {
console.log('Creating words table');
await createTable({
TableName: 'words',
KeySchema: [
{ AttributeName: 'id', KeyType: 'HASH' },
{ AttributeName: 'index', KeyType: 'RANGE' },
],
AttributeDefinitions: [
{ AttributeName: 'id', AttributeType: 'S' },
{ AttributeName: 'index', AttributeType: 'N' },
],
ProvisionedThroughput: { ReadCapacityUnits: 5, WriteCapacityUnits: 5 },
});
await wait(5000);
console.log('done');
} else {
console.log('words table found. Skipping.')
}
// Seed words
let index = 0;
for(let word of words) {
console.log(`Adding word ${word}`);
const params = {
TableName: tableName('words'),
Item: {
id: word,
index: index,
},
};
await db.put(params).promise();
console.log('added');
index++;
}
И вот как я пытаюсь извлечь запись:
const db = require('../db');
const getResponseItem = response => response.Item;
module.exports = function loadWordByIndex(index) {
return db.get({
TableName: 'talk_stem.words',
Key: {
index,
},
})
.promise()
.then(getResponseItem);
};
Какой смысл определять ключ RANGE
, если я могудаже не ссылаться на это в запросах?