如何使用节点js查询Dynamodb中的多个列

时间:2017-03-31 05:06:15

标签: amazon-dynamodb

我正在使用Dynamodb和Nodejs开展项目。我需要一个解决方案来查询select * from table where name=this and age=22 and active=this and area=this等多个字段。我需要一个只有查询的解决方案,我不允许扫描。如果可能,请通过示例nodejs脚本告诉我。

1 个答案:

答案 0 :(得分:4)

这是代码。

1)更改表名

2)如果您使用的是AWS DynamoDB服务,请更改登录凭据。以下代码使用本地DynamoDB服务

var AWS = require("aws-sdk");

var creds = new AWS.Credentials('akid', 'secret', 'session');

AWS.config.update({
    region : "us-west-2",
    endpoint : "http://localhost:8000",
    credentials : creds
});

var docClient = new AWS.DynamoDB.DocumentClient();

var table = "tablename";

var params = {
    TableName : table,
    KeyConditionExpression : 'personId = :personIdval', 
    FilterExpression : '#name= :nameVal and age= :ageVal and active=:activeVal and area=:areaVal',
     ExpressionAttributeNames : {
        '#name' : 'name'
    },
    ExpressionAttributeValues : {
        ':personIdval' : '7',
        ':nameVal' : 'this',
        ':ageVal' : 22,
        ':activeVal' : 'this',
        ':areaVal' : 'this'
    }
};

docClient.query(params, function(err, data) {
    if (err) {
        console.error("Unable to read item. Error JSON:", JSON.stringify(err,
                null, 2));
    } else {
        console.log("GetItem succeeded:", JSON.stringify(data, null, 2));
    }
});