Javascript 如何在Dynamodb中存储对象?

Javascript 如何在Dynamodb中存储对象?,javascript,node.js,amazon-dynamodb,Javascript,Node.js,Amazon Dynamodb,我知道要将一个项放入Dynamodb表中,它必须是这样的结构,但是有没有一个选项可以在没有这种特殊结构的情况下输入一个标准的Javascript对象?如果没有,AWS SDK中是否有一个现有函数可以将我的Javascript对象转换为一个具有此Dynamodb特殊结构的对象 var params = { Item: { "AlbumTitle": { S: "Somewhat Famous" }, "Artist": { S: "No One You

我知道要将一个项放入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"
 };

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' } 
}
*/
要反转操作,请使用
解组
功能。看



或者有一个
DocumentClient
可用,但我没有使用它。关于它的文档很好

好的,谢谢!DocumentClient是我一直在寻找的。Checkout DocumentClient另一个选项是,您只将信息放在查找项目或用于辅助索引所需的属性中。所有其他数据都进入项目的JSON属性。DynamoDB通过这种方式更加高效。