Subtubes
Subtubes

Reputation: 16863

How to reformat DynamoDB response from nodejs client

When I make a get request from dynamoDB using the aws nodejs client the result contains a response with the type as the Key i.e.

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

Note that the keys to the values are the prefixes for the types , S for String and N for Number is there a way to remove this "type key"?

Upvotes: 1

Views: 951

Answers (1)

notionquest
notionquest

Reputation: 39186

Here is the sample code using 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));
    }
});

Output:-

The output doesn't have the data type of the attribute.

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

Upvotes: 2

Related Questions