我有一个带有名为“批准”列的动力学表,其中有几个测试项目,其中“批准”的值包括“待定”,“已批准”和“未批准” . 我有3个项目“待定” .
我正在使用以下Lambda函数来检索项目,我只想获得“待定”的项目 . 所以我正在使用FilterExpression . 这是我的完整功能:
var doc = require('dynamodb-doc');
var dynamo = new doc.DynamoDB();
exports.handler = function(event, context) {
var params = {
TableName: 'mytable',
FilterExpression: 'contains(approval, :approval_value)',
ExpressionAttributeValues: {':approval_value': 'pending'}
};
dynamo.scan(params, onScan);
function onScan(err, data) {
if (err) {
console.error("Unable to scan the table. Error JSON:", JSON.stringify(err, null, 2));
} else {
console.log("Scan succeeded.");
context.succeed(data);
}
}
};
基本上我想做一个,“SELECT * FROM mytable WHERE approval LIKE'pending';”如果是在SQL中 .
奇怪的是,在我期待的时候只返回项目3.我没有使用限制 . 为什么它只返回一个项目?
1 回答
Welp,令人尴尬的是,我正在阅读执行结果错误 . 它正确地返回了3个结果,但只有第一个项目出现在“首屏”(可能是不使用AWS控制台进行此项操作的另一个原因) .
希望上面的代码能够很好地运行,它将帮助其他人作为使用FilterExpression的简单示例 .