Сортировка, Пропустить и Ограничить (Пропустить) запросы для DynamoDB - PullRequest
0 голосов
/ 23 мая 2018

Я новичок в Lambda, DynamoDB и без сервера.У меня есть одна пользовательская таблица, которую я хочу сделать следующим образом.

  1. Я хочу получать записи с разбивкой по страницам на каждой странице, извлекать 10 записей из пользовательской таблицы,
  2. Я хочу выполнить сортировку постолбцы, такие как имя и адрес электронной почты.Это оба столбца со строковым типом данных.

Я использую без сервера с node.js.Здесь я прикрепляю свой файл serverless.yaml

UserDynamoDbTable:
  Type: 'AWS::DynamoDB::Table'
  DeletionPolicy: Retain
  Properties:
    AttributeDefinitions:
      -
        AttributeName: id
        AttributeType: S
    KeySchema:
      -
        AttributeName: id
        KeyType: HASH
    ProvisionedThroughput:
      ReadCapacityUnits: 1
      WriteCapacityUnits: 1
    TableName: 'user'

Для сортировки я пытаюсь выполнить этот запрос

let params = {
     TableName: 'user',
     limit: 10,
     ScanIndexForward: false
};
dynamoDb.scan(params, (error, result) => { })

Но я не получил ответ в соответствии с моим требованием.Пожалуйста, помогите мне здесь, я новичок в этом.Заранее спасибо.

1 Ответ

0 голосов
/ 23 мая 2018

ScanIndexForward работает только на ключе диапазона.Поскольку в таблице не определен ключ диапазона (т.е. ключ сортировки), данные не сортируются.

Указывает восходящий (true) или нисходящий (false) обход индекса.DynamoDB возвращает результаты, отражающие запрошенный порядок, определенный клавишей диапазона.

К сожалению, DynamoDB не может отсортировать данные по любым другим атрибутам.Можно сортировать только по ключу диапазона.

...