NodeJ中的DynamoDB putitem - 对象数组

Eri*_*onn 19 node.js amazon-dynamodb aws-lambda

我正在尝试从AWS Lambda设置一个小的api到DynamoDB,我无法弄清楚是否以及如何将对象数组写入密钥.

我有一个像这样的对象

{
    "teamName": "Team Awesome",
    "members": [
        {
            "email": "person-1@example.com",
            "name": "Bob"
        },
        {
            "email": "person-2@example.com",
            "name": "Alice"
        }
    ]
} 
Run Code Online (Sandbox Code Playgroud)

成员数组给了我一些问题,在文档中它看起来可以考虑列表类型来完成,但是没有例子如何做到这一点,并且我没有办法尝试它.

那么可以用这种格式写一些东西吗?在这种情况下你怎么做呢?

示例代码 - 我该怎么做?

var AWS = require('aws-sdk');
var dynamodb = new AWS.DynamoDB();

exports.handler = function(event, context) {
    var tableName = "GDCCompetition";
    var datetime = new Date().getTime().toString();

    DynamoDB.putItem({
        "TableName": tableName,
        "Item": {
            "datetime": {
                "N": datetime
            },
            "teamName": {
                "S": event.teamName
            },
            "members": ???
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

Vse*_*nin 31

文档并不是很明显,但是有一个叫做的东西DocClient,你可以将一个普通的JS对象传递给它,它将完成所有解析和转换到AWS对象(包含所有类型).你可以像这样使用它:

var AWS = require("aws-sdk");
var DynamoDB = new AWS.DynamoDB.DocumentClient();

var params = {
    TableName: "MyTable",
    Item: {
        "teamName": "Team Awesome",
        "members": [
            {
                "email": "person-1@example.com",
                "name": "Bob"
            },
            {
                "email": "person-2@example.com",
                "name": "Alice"
            }
         ]
    } 
};

DynamoDB.put(params, function (err) {
     if (err) {
         return throw err;
     }

     //this is put
});
Run Code Online (Sandbox Code Playgroud)