Фильтрация таблицы динамо-базы данных приводит к неверному GSI-выражению KeyConditionExpression. - PullRequest
0 голосов
/ 03 июля 2018

У меня есть таблица, содержащая идентификатор и имя, у меня есть индекс GSI с ключом раздела theName и столбцом сортировки Last_attended . Я пытаюсь запросить его с помощью лямбда, но я не могу вернуть никаких результатов. Я продолжаю получать ошибки при форматировании. Я использую DocumentClient с методом запроса, он просто продолжает выдавать мне новую ошибку каждый раз, когда я запускаю его. Не уверен, что мне здесь не хватает, любая помощь приветствуется .....

! - данные

{
  "id": 20919382411,
  "Belt_awarded": "green",
},
{
  "id": 20919382412,
  "Belt_awarded": "yellow",
}

! --- код

 const docClient = new AWS.DynamoDB.DocumentClient()

   const params = {
      TableName : `students`,
      "IndexName": "theName-Last_attended-index",
      KeyConditionExpression: '#id = :id_val',
      ExpressionAttributeValues: { ":id_val": {"N": "20919382411"}, ':v_name': { 'S': 'joe' } }
    }

1 Ответ

0 голосов
/ 03 июля 2018

Где твой ExpressionAttributeNames?

Вы определили #id как атрибут выражения, но не объявляете ExpressionAttributeNames

Вы используете документ-клиент. Должно быть что-то вроде этого

const params = {
    TableName: 'students',
    IndexName: 'Belt_awarded-index',
    KeyConditionExpression: '#Belt_awarded = :Belt_awarded',
    ExpressionAttributeNames: {
        '#Belt_awarded': 'Belt_awarded'
    },
    ExpressionAttributeValues: {
        ':Belt_awarded': 'yellow'
    },
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...