【问题标题】:GET data from DynamoDB using Node JS SDK使用 Node JS SDK 从 DynamoDB 获取数据
【发布时间】:2018-05-20 18:50:53
【问题描述】:

我对使用 DynamoDB 很陌生。我想查询 DynamoDB 数据库中的特定列值,并使用 NodeJS sdk 获取与该特定列值匹配的数据

在这种情况下,DynamoDB 已经部署。

请建议如何使用 Node JS 实现此工作流程。

【问题讨论】:

    标签: node.js amazon-dynamodb aws-sdk-js aws-sdk-nodejs


    【解决方案1】:

    最重要的是创建一个 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 + ")");
        });
      }
    });
    

    【讨论】:

    • 是的,你已经说过了,上面的例子是正确的,你只需用你的表更改属性值,KeyConditionExpression,ProjectionExpression,FilterExpression,TableName
    • 如果您需要更多帮助,您应该提供您想要执行的 dynamodb 表和查询的结构
    • 表中有很多列。有一个名为 createDate 的列,我想获取与 createDate 列匹配的行
    • 能否给我一个带有结构的示例dynamodb表的例子,以便我理解和实现它
    猜你喜欢
    • 1970-01-01
    • 2018-03-07
    • 2017-08-06
    • 1970-01-01
    • 2021-07-10
    • 1970-01-01
    • 2019-08-11
    • 2020-07-01
    • 2019-06-25
    相关资源
    最近更新 更多