简体   繁体   中英

How to scan AWS DynamoDB with wild card in Nodejs

I use aws-sdk in nodejs, And I should scan database with wildcard.

I tried this with aws developer guide :

var params = {
    TableName: RecipeTable,
    FilterExpression: "#recipe = :recipe",
    ExpressionAttributeNames:{
        "#recipe": "recipe",
    },
    ExpressionAttributeValues: {
        ":recipe": request.params.recipe,
    }
};

I can't reach the answer.

Can someone help me?

Thanks.

I found the answer: Using contains keyword.

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}));
            }
        }
    }
})

I have referenced this document .

Thanks.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM