【发布时间】:2018-05-20 18:50:53
【问题描述】:
我对使用 DynamoDB 很陌生。我想查询 DynamoDB 数据库中的特定列值,并使用 NodeJS sdk 获取与该特定列值匹配的数据
在这种情况下,DynamoDB 已经部署。
请建议如何使用 Node JS 实现此工作流程。
【问题讨论】:
标签: node.js amazon-dynamodb aws-sdk-js aws-sdk-nodejs
我对使用 DynamoDB 很陌生。我想查询 DynamoDB 数据库中的特定列值,并使用 NodeJS sdk 获取与该特定列值匹配的数据
在这种情况下,DynamoDB 已经部署。
请建议如何使用 Node JS 实现此工作流程。
【问题讨论】:
标签: node.js amazon-dynamodb aws-sdk-js aws-sdk-nodejs
最重要的是创建一个 JSON 对象,其中包含 查询表所需的参数,在本例中包括表名、 查询所需的 ExpressionAttributeValues,一个使用这些的 KeyConditionExpression 定义查询返回哪些项目的值,以及要为每个项目返回的属性值的名称 物品。调用 DynamoDB 服务对象 的查询方法。 这是一个使用 nodejs sdk 查询 dynamodb 的示例
// Load the AWS SDK for Node.js
var AWS = require('aws-sdk');
// Set the region
AWS.config.update({region: 'REGION'});
// Create DynamoDB service object
var b = new AWS.DynamoDB({apiVersion: '2012-08-10'});
var params = {
ExpressionAttributeValues: {
':s': {N: '2'},
':e' : {N: '09'},
':topic' : {S: 'PHRASE'}
},
KeyConditionExpression: 'Season = :s and Episode > :e',
ProjectionExpression: 'Episode, Title, Subtitle',
FilterExpression: 'contains (Subtitle, :topic)',
TableName: 'EPISODES_TABLE'
};
b.query(params, function(err, data) {
if (err) {
console.log("Error", err);
} else {
data.Items.forEach(function(element, index, array) {
console.log(element.Title.S + " (" + element.Subtitle.S + ")");
});
}
});
【讨论】: