Как использовать сканирование и запрос в архитектуре с одной таблицей - DynamoDB - PullRequest
0 голосов
/ 04 ноября 2019

В моем проекте реализована архитектура с одной таблицей. У меня возникла проблема с использованием методов сканирования и запросов DynamoDB, потому что в моей БД я получил несколько элементов о различных модулях, например: login, register..etc. Так что Ключ не одинаков в каждом предмете. Я только установил KeyType для идентификации элемента в yml. Я не знаю, как использовать метод сканирования и запроса в одной таблице арки.

Если я использую метод сканирования, я получил весь элемент из базы данных. Без какого-либо выражения или условия например: FilterExpression, KeyConditionExpression

my yaml file ex:
Resources:  
    TABLENAMEDynamoDBTable:
      Type: 'AWS::DynamoDB::Table'      
      Properties:
        AttributeDefinitions:
          -
            AttributeName: id
            AttributeType: S
        KeySchema:
          -
            AttributeName: id
            KeyType: HASH
        ProvisionedThroughput:
          ReadCapacityUnits: 1
          WriteCapacityUnits: 1
        TableName: TABLENAME  

var params = {
    TableName: 'TABLENAME'   
};
dynamodb.scan(params, function(err, data) {
    if (err) ppJson(err); // an error occurred
    else ppJson(data); // successful response
});

Вывод: Item: [{...}, ...]

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

var params = {
    TableName: 'TABLENAME',
    Limit: 10, 
    FilterExpression:'#user =:val',
    ExpressionAttributeNames: {
        "#user": "status",
    },
    ExpressionAttributeValues: {
         ":val": 'active'
    }
};
dynamodb.scan(params, function(err, data) {
    if (err) ppJson(err); // an error occurred
    else ppJson(data); // successful response
});

Я ожидал вывода

Item:[{status:'active',..},{status:'active',..},...]

, но получил эту ошибку.

"message":"There were 7 validation
errors: InvalidParameterType: Expected params.ExpressionAttributeValues[':val'] to be a structure 
UnexpectedParameter: Unexpected key '0' found in params.ExpressionAttributeValues[':val']
UnexpectedParameter: Unexpected key '1' found in params.ExpressionAttributeValues[':val'] 
UnexpectedParameter: Unexpected key '2' found in params.ExpressionAttributeValues[':val'] 
UnexpectedParameter: Unexpected key '3' found in params.ExpressionAttributeValues[':val'] 
UnexpectedParameter: Unexpected key '4' found in params.ExpressionAttributeValues[':val'] 
UnexpectedParameter: Unexpected key '5' found in params.ExpressionAttributeValues[':val']... etc

Таким образом, любой может решить эту проблему и объяснитьпроектирование одной таблицы, сканирование и использование запроса.

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