问题描述
我正在查询DynamoDB。它具有一个名为“多个单位”的属性,其结构如下:List [Map {Map {S {},S},...]
我在本地测试了一个lambda:
module.exports.getByAddress = async (event) => {
const params = {
TableName: process.env.tableName,Key: {
Address: event.pathParameters.address
}
};
var docClient = new AWS.DynamoDB.DocumentClient({apiVersion: '2012-08-10'});
docClient.get(params).promise().then(
returnResult => console.log(returnResult)
)
}
这是输出:
Item: {
...
license: '',Coordinates: { lng: '-71.075985',lat: '42.346096' },'Multiple Units': [ [Object],[Object],[Object] ],...
}
当我尝试console.log Multiple Units列表时,我不确定。 在阅读有关DynamoDB get / getItem的文章时,我猜想它与异步有关,但是我无法配置将导致正确输出的更改。
解决方法
根据您的评论,您提到执行undefined
时得到console.log(returnResult['Multiple Units'])
。
仔细查看console.log(returnResult)
正在打印什么:
Item: {
...
license: '',Coordinates: { lng: '-71.075985',lat: '42.346096' },'Multiple Units': [ [Object],[Object],[Object] ],...
}
请注意,它正在使用密钥map
打印Item
。因此,要获取您的数据,请尝试console.log(returnResult.Item['Multiple Units'])
您可以查看DynamoDB SDK API以获得有关get
通话结果的更多信息。