问题描述
我在nodejs中使用aws-sdk,并且应该使用通配符扫描数据库。
我尝试过aws developer guide:
var params = {
TableName: RecipeTable,FilterExpression: "#recipe = :recipe",ExpressionAttributeNames:{
"#recipe": "recipe",},ExpressionAttributeValues: {
":recipe": request.params.recipe,}
};
我找不到答案。
有人可以帮我吗?
谢谢。
解决方法
我找到了答案:使用contains
关键字。
app.get('/recipe/:recipe',(request,response) => {
var params = {
TableName: RecipeTable,FilterExpression: "contains(#recipe,:recipe)",// Here!
ExpressionAttributeNames:{
"#recipe": "ingredients"
},ExpressionAttributeValues: {
":recipe": request.params.recipe
}
};
result = [];
docClient.scan(params,onScan);
function onScan(err,data) {
if (!err) {
data.Items.forEach((itemdata) => {
result.push(itemdata);
});
if(typeof data.LastEvaluatedKey != "undefined") {
params.ExclusiveStartKey = data.LastEvaluatedKey;
docClient.scan(params,onScan);
} else {
response.send(JSON.stringify({"result" : result}));
}
}
}
})
我引用了this document。
谢谢。