如何在 Dynamodb 中存储对象?

Ber*_*lue 5 javascript node.js amazon-dynamodb

我知道要将项目放入 Dynamodb 表中,它必须采用这样的结构,但是是否有选项可以输入没有这种特殊结构的标准 Javascript 对象?如果没有,AWS 开发工具包中是否有现有函数可以将我的 Javascript 对象转换为具有 Dynamodb 的这种特殊结构的对象?

var params = {
  Item: {
   "AlbumTitle": {
     S: "Somewhat Famous"
    }, 
   "Artist": {
     S: "No One You Know"
    }, 
   "SongTitle": {
     S: "Call Me Today"
    }
  }, 
  ReturnConsumedCapacity: "TOTAL", 
  TableName: "Music"
 };
Run Code Online (Sandbox Code Playgroud)

ug_*_*ug_ 7

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' } 
}
*/
Run Code Online (Sandbox Code Playgroud)

要反转该操作,您可以使用该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/