我有一个带有名为“审批”列的dynamodb表,其中包含几个“审批”值的测试项,其中包括“待定”,“已批准”和“未批准”。我有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 appro LIKE'pending';”如果是在SQL中。
奇怪的是,只有在我期待的时候才会返回项目。我没有使用限制。为什么它只返回一个项目?
答案 0 :(得分:0)
Welp,令人尴尬的是,我正在阅读执行结果错误。它正确地返回了3个结果,但只有第一个项目出现在“首屏”(可能是不使用AWS控制台进行此操作的另一个原因)。
希望上面的代码能够很好地运行,作为使用FilterExpression的简单示例。