Wednesday, 3 May 2017

Confused on querying DynamoDB

I've the below data in my DynamoDB.

enter image description here

and I'm trying to achieve the below result. scan through the table and get the rows where the management is NULL and Location is Midwest.

I initially tried the below query to match the Null.

var scanningParameters = {
    TableName: 'LOB',
    FilterExpression: "#mgmt contains NULL",
    ExpressionAttributeNames: {
        "#mgmt": "Management",
    }
};

docClient.scan(scanningParameters, onScan);
function onScan(err, data) {
    if (err) {
        console.error("Unable to scan the table. Error JSON:", JSON.stringify(err, null, 2));
    } else {
        // print all the movies
        console.log("Scan succeeded.");
        data.Items.forEach(function (data) {
            console.log(
                data.lineofbusiness + " name : ",
                data.name);
        });

        if (typeof data.LastEvaluatedKey != "undefined") {
            console.log("Scanning for more...");
            scanningParameters.ExclusiveStartKey = data.LastEvaluatedKey;
            docClient.scan(scanningParameters, onScan);
        }
    }
}

I get the exception as

{
    "message": "Invalid FilterExpression: Syntax error; token: \"contains\", near: \"#mgmtcontains NULL\"",
    "code": "ValidationException",
    "time": "2017-05-03T13:21:11.611Z",
    "requestId": "0T0GU59HRJ24P96D42H9QNC97RVV4KQNSO5AEMVJF66Q9ASUAAJG",
    "statusCode": 400,
    "retryable": false,
    "retryDelay": 13.73953651636839
}

please let me know where am I going wrong and how can I fix this.



via user3872094

No comments:

Post a Comment