Lambda + Nodejs + dynamodb:存储json:为什么要存储项目存储数据类型?

时间:2017-08-26 00:14:13

标签: node.js amazon-dynamodb aws-lambda

我尝试使用下面给出的代码将json对象存储在dynamodb中。

exports.handler = function (event, context, callback) {

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

    var table = "Logs";

    id_val = 1
    var params = {
        TableName: table,
        Item: {
            "id": id_val,
            "message": event
        }
    };

    docClient.put(params, function(err, data) {
        if (err) {
            callback(null, JSON.stringify(err, null, 2));
            context.fail("Unable to add item. Error JSON:", JSON.stringify(err, null, 2));
        }
    });
}

输入事件

[
    {
        "id": 1,
        "demographic": {
            "firstName": "John",
            "middleName": "w",
            "lastName": "Doe",
            "suffix": "jr",
            "birthDate": "1990-02-02",
            "gender": "M",
            "ssn": 123
        }
    }
]

表格中存储的内容

{
    "id": {
        "N": "84.20420287568176"
    },
    "message": {
        "L": [
            {
                "M": {
                    "demographic": {
                        "M": {
                            "birthDate": {
                                "S": "1990-02-02"    
       ...
       ...
       ...

为什么数据类型存储在表中?如何将其分解以便分别存储属性?

1 个答案:

答案 0 :(得分:1)

这就是dynamoDB存储数据的方式,因为当我们查看数据时,我们应该能够知道该字段的数据类型,这与关系数据库中的列的数据类型非常相似。虽然当我们通过实际应用程序或API从dynamoDB获取数据时,数据在dynamoDB中存储和显示,但我们可以删除数据类型,这将只返回实际数据。