首页 > 解决方案 > FilterExpression 仅适用于 DynamoDB 查询中的比较器“=”

问题描述

我正在尝试在 DynamoDB 的查询中使用 FilterExpression。但是,它不接受任何比较运算符,而是equals。我的目标是使用grater than

使用 '=' 运算符,下面的这个查询工作得很好

var params = {
    TableName: 'OrderBook-dev',
    
    KeyConditionExpression: 'order_type = :value', 
    FilterExpression: "#v = :val", // Equals is working fine but fails with '>'
    ExpressionAttributeNames: {
        '#v': 'amount'
    },
    ExpressionAttributeValues: { 
      ':value': 'BUY',
      ':val': 5
    },
    ProjectionExpression: 'amount, price',
    ScanIndexForward: true
    
};
docClient.query(params, function(err, data) {
    if (err) ppJson(err); // an error occurred
    else ppJson(data); // successful response
});

如果我将它替换为 '>' 我会得到这个异常

:"无效的 FilterExpression:语法错误;标记:"&",附近:"#name >""

在此处输入图像描述

我想我在使用Filter Expressions for Query时正在解决AWS 的建议,所以我没有想法。有人可以帮我吗?

标签: amazon-web-servicesnosqlamazon-dynamodb

解决方案


推荐阅读