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

Эквивалент SQL -.

SELECT * FROM tokens where type='app_access_token`

Код:

    copnst db = new Dynamodb.DocumentClient(credentials);

    const params = {
      TableName: 'TOKEN',
      Key: {
        type: 'app_access_token'
      }
    };

    const response = db.get(params).promise();

Но я считаю, что это позволит мне получить доступ только через первичный ключ, верно?

Отсутствие структуры SQL WorkBench

enter image description here

0
Kay 19 Июн 2020 в 13:01

1 ответ

Лучший ответ

Эквивалент SELECT * DynamoDB - это метод scan. Они оба сканируют все записи таблицы (и, следовательно, медленные и дорогие).

Подробнее о методе scan можно узнать в Руководстве разработчика Amazon. или в этом полезная ветка.

Если вы можете, я бы использовал GSI с атрибутом type в качестве ключа, но если вы все же хотите сделать это с помощью метода scan, вот как вы это сделаете:

const params = {
  TableName : 'TOKEN',
  FilterExpression : 'type = :type',
  ExpressionAttributeValues : {':type' : 'app_access_token'}
};

const documentClient = new AWS.DynamoDB.DocumentClient();

const response = documentClient.scan(params).promise();

AWS JavaScript SDK - DocumentClient Scan ()

0
Shay Ashkenazi 19 Июн 2020 в 10:22