Я не могу численно упорядочить результаты запроса GET от DB Dynamo с Lambda - PullRequest
0 голосов
/ 10 ноября 2019

Я пытаюсь вернуть данные из таблицы DynamoDB с результатами, численно упорядоченными по первичному ключу сортировки. Я использую функцию лямбда-сканирования для возврата данных, но они не возвращаются в числовом порядке. Первичный ключ сортировки - «время», как мне этого добиться?

const AWS = require('aws-sdk');
const dynamodb = new AWS.DynamoDB({region: 'eu-west-2', apiVersion: '2012-08-10'});

exports.handler =  (event, context, callback) => {

    const params = {
        TableName: "finalTrickstar",

    };

    dynamodb.scan(params, function(err, data){
          if (err) {
            console.log(err);
            callback(err);
        } else {
            console.log(data);
            const items = data.Items.map(
                (dataField) => {

                  return {time: dataField.time.S, day: dataField.day.S, show: dataField.show.S, showID: dataField.showID.S};
               } 

                );
            callback(null, items);
        }
    });
    };

Я думал, что наличие первичного ключа сортировки вернет результаты, упорядоченные ключом, но вместо этого они, похоже, не упорядочены вообще.

1 Ответ

1 голос
/ 10 ноября 2019

Я не знаю, что вы подразумеваете под «Первичным ключом сортировки», но DynamoDB поддерживает два типа первичных ключей:

  • ключ раздела
  • ключ раздела + ключ сортировки (составнойпервичный ключ)

Если ваша таблица имеет первичный ключ, состоящий из ключа раздела и ключа сортировки, то данные будут сохранены и извлечены отсортированными по ключу сортировки. Если тип данных ключа сортировки Number, результаты возвращаются в числовом порядке;в противном случае результаты возвращаются в порядке байтов UTF-8. По умолчанию порядок сортировки возрастает. Чтобы изменить порядок, установите для параметра ScanIndexForward значение false.

Убедитесь, что ваша таблица настроена правильно и вы не ожидаете, что данные будут отсортированы любым другим способом, кроме байтов UTF-8. ключа сортировки, если это не число.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...