iam使用Web控制台在amazon dynamoDB中创建了一个表。这是添加一些数据后的表结构。
101 | manaf | haaaai
102 | manaf |喂
我需要在两个res限制之间获取数据。
这是我在js中的代码。
var AWS = require("aws-sdk");
AWS.config.update({
region: "regionName",
});
var docClient = new AWS.DynamoDB.DocumentClient()
var table = "testTable";
var params = {
TableName: table,
FilterExpression :['userid = :id','res >= :val1','res <= :val2'],
ExpressionAttributeValues : {':id' : 'manaf','res':101, 'res':102}
};
docClient.scan(params, function(err, data) {
if (err) console.log(err);
else console.log(data);
});
但是我得到了这样的错误。
{ [InvalidParameterType: Expected params.FilterExpression to be a string]
message: 'Expected params.FilterExpression to be a string',
code: 'InvalidParameterType',
time: Thu May 19 2016 17:24:57 GMT+0530 (IST) }
如何在dynamo db scan方法中添加多个过滤器选项?
答案 0 :(得分:1)
您的FilterExpression
是一个列表。您必须使用dynamos运算符(OR,AND)提供字符串并连接元素。
例如:
FilterExpression: "x = 1 AND y = 2"
来自文档:
FilterExpression的语法与 ConditionExpression。另外,FilterExpression使用相同的 比较器,函数和逻辑运算符作为ConditionExpression。 了解更多信息
您可能还需要替换键和值以避免错误“属性是保留关键字”; 有关详细信息,请参阅文档:http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ExpressionPlaceholders.html