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