如何在Node.js中使用通配符扫描AWS DynamoDB

问题描述

我在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

谢谢。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...