使用多个条件dynamodb过滤数据



如何在dynamodb中使用多个条件筛选数据

我想使用scan方法按post_date和地区过滤一个表。

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操作不支持该操作。如果你知道你想要的项目的主键,你应该使用query操作。

当您想要搜索表中的所有分区时,可以使用scan操作。如果您想在一个特定的分区中搜索,则使用query操作。

由于您正在尝试执行scan操作,您需要删除KeyConditionExpression

最新更新