5

iam 使用 Web 控制台在 amazon dynamoDB 中创建了一个表。这是我添加一些数据后的表结构。

时间戳 | 用户名 | 文本

101 | 马纳夫 | 哈哈

102 | 马纳夫 | 你好

我需要获取两个 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 扫描方法中添加多个过滤器选项?

4

1 回答 1

1

FilterExpression的是一个列表。您必须提供一个字符串并使用发电机运算符( OR 和 AND )连接元素。例如:

FilterExpression: "x = 1 AND y = 2"

从文档:

FilterExpression 的语法与 ConditionExpression 的语法相同。此外,FilterExpression 使用与 ConditionExpression 相同的比较器、函数和逻辑运算符。欲了解更多信息

您可能还需要替换键和值以避免错误“属性是保留关键字;”有关更多详细信息,请参阅文档:http: //docs.aws.amazon.com/amazondynamodb/latest/developerguide/ExpressionPlaceholders.html

于 2016-05-19T12:30:13.847 回答