Как сохранить объект в Dynamodb? - PullRequest
1 голос
/ 21 сентября 2019

Я понимаю, что для помещения элемента в таблицу Dynamodb он должен быть в такой структуре, но есть ли возможность для ввода стандартного объекта Javascript без этой специальной структуры?Если нет, то есть ли в AWS SDK существующая функция, которая преобразует мой объект Javascript в объект с такой специальной структурой для Dynamodb?

var params = {
  Item: {
   "AlbumTitle": {
     S: "Somewhat Famous"
    }, 
   "Artist": {
     S: "No One You Know"
    }, 
   "SongTitle": {
     S: "Call Me Today"
    }
  }, 
  ReturnConsumedCapacity: "TOTAL", 
  TableName: "Music"
 };

1 Ответ

1 голос
/ 21 сентября 2019

AWS SDK предоставляет несколько способов сделать это.

Мне известен только AWS.DynamoDB.Converter.Его можно использовать следующим образом:

const AWS = require("aws-sdk");

let record = {
   "AlbumTitle": "Somewhat Famous", 
   "Artist": "No One You Know", 
   "SongTitle": "Call Me Today"
}

// Your DynamoDB representation
let ddbRecord = AWS.DynamoDB.Converter.marshall(record)

/* ddbRecord is now
{ 
  AlbumTitle: { S: 'Somewhat Famous' },
  Artist: { S: 'No One You Know' },
  SongTitle: { S: 'Call Me Today' } 
}
*/

Чтобы инвертировать операцию, вы должны использовать функцию unmarshall.См. https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/Converter.html


В качестве альтернативы есть DocumentClient доступный, но я не использовал его.Документация на него неплохая https://aws.amazon.com/blogs/developer/announcing-the-amazon-dynamodb-document-client-in-the-aws-sdk-for-javascript/

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