DynamoDB putitem在NodeJs中 – 对象数组

我正在尝试从AWS Lambda设置一个小的API到DynamoDB,我很难弄清楚是否以及如何将一个对象数组写入到一个键中。

我有一个像

{ "teamName": "Team Awesome", "members": [ { "email": "person-1@example.com", "name": "Bob" }, { "email": "person-2@example.com", "name": "Alice" } ] } 

成员数组给我提供了一些问题,在文档中看起来可以考虑使用列表types,但是没有例子说明如何去做,而我正在用尽方法去尝试它。

那么是否有可能用这种格式写一些东西呢?在这种情况下你怎么做呢?

示例代码 – 我该怎么摆?

 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": ??? } }); } 

       

网上收集的解决方案 "DynamoDB putitem在NodeJs中 – 对象数组"

文档不是很明显,但有一个叫做DocClient的东西,你可以传递一个常用的JS对象,它将完成所有的parsing和转换到AWS对象(包括所有types)。 你可以像这样使用它:

 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 });