如何从nodejs客户端重新格式化DynamoDB响应

时间:2016-10-05 21:37:14

标签: node.js amazon-dynamodb

当我使用aws nodejs客户端从dynamoDB发出get请求时,结果包含一个类型为Key的响应,即

{
    Item: {
        newrelic_id: {
            S: 'nr-1234'
        }
    ,
        jumpcloud_id: {
            S: 'j-234'
        }
    ,
        microtime: {
            N: '1475690490854'
        }
    ,
        instance_id: {
            S: 'i-abc1234'
        }
    }
}

请注意,值的键是类型的前缀,S的{​​{1}}和String的{​​{1}}是否可以删除此类&#34 ;键入键"?

1 个答案:

答案 0 :(得分:2)

以下是使用DocumentClient的示例代码。

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

var creds = new AWS.Credentials('akid', 'secret', 'session');

AWS.config.update({
    region : "us-west-2",
    endpoint : "http://localhost:8000",
    credentials : creds
});

var docClient = new AWS.DynamoDB.DocumentClient();

var table = "Movies";

var year_val = 2015;
var title = "The Big New Movie";

var params = {
    TableName : table,
    KeyConditionExpression : 'yearkey = :hkey and title = :rkey',
    ExpressionAttributeValues : {
        ':hkey' : year_val,
        ':rkey' : title
    }
};

docClient.query(params, function(err, data) {
    if (err) {
        console.error("Unable to read item. Error JSON:", JSON.stringify(err,
                null, 2));
    } else {
        console.log("GetItem succeeded:", JSON.stringify(data, null, 2));
    }
});

<强>输出: -

输出没有属性的数据类型。

GetItem succeeded: {
  "Items": [
    {
      "title": "The Big New Movie",
      "yearkey": 2015,
      "info": {
        "rating": 0,
        "plot": "Nothing happens at all."
      }
    }
  ],
  "Count": 1,
  "ScannedCount": 1
}