Node.js 使用多条件dynamodb过滤数据

Node.js 使用多条件dynamodb过滤数据,node.js,express,amazon-dynamodb,Node.js,Express,Amazon Dynamodb,如何使用dynamodb中的多个条件过滤数据 我想使用扫描方法按发布日期和地区筛选表 var params = { TableName: table, KeyConditionExpression : 'post_date = :today_date', FilterExpression : 'post_date = :today_date and district = :district', ExpressionAttributeValues : {

如何使用dynamodb中的多个条件过滤数据

我想使用扫描方法按发布日期和地区筛选表

var params = {
    TableName: table,
    KeyConditionExpression : 'post_date = :today_date',
    FilterExpression : 'post_date = :today_date and district = :district',
    ExpressionAttributeValues : {
        ':today_date' : today_date,
        ':district' : district
    }
};

let queryExecute = new Promise((res, rej) => {
    dynamoDB.scan(params, function (err, data) {
        if (err) {
            console.log("Error", err);
            rej(err);
        } else {
            console.log("Success! scan method fetch data from dynamodb");
            res(JSON.stringify(data, null, 2));
        }
    });
});
您可以使用扫描操作筛选多个属性:

var params= {
    TableName: "YOUR TABLE NAME",
    FilterExpression : 'post_date = :today_date and district = :district',
    ExpressionAttributeValues : {
        ':today_date' : today_date,
        ':district' : district
    }
  }
您的示例包括一个
KeyConditionExpression
,该表达式在
scan
操作中不受支持。如果知道所需项目的主键,则应使用
查询
操作

当您希望在表中的所有分区中进行搜索时,可以使用
scan
操作。如果要在特定分区中搜索什么,则使用
query
操作

由于您试图执行
扫描
操作,因此需要删除
KeyConditionExpression