DynamoDB scan not finding record

0

I have a lambda node function that is performing a scan against DynamoDB, it does not return an item.

var params = {
        TableName: REFERRER_TABLE,
        FilterExpression: "messageId = :a",
        ExpressionAttributeValues: {
          ":a": {
            S: messageId
          }
        }
};

dynamoDb.scan(params, function(error, leadData) { ...

returns:

{
    "body": {
        "Items": [],
        "Count": 0,
        "ScannedCount": 2
    },
    "query": {
        "TableName": "lead-data-dev",
        "FilterExpression": "messageId = :a",
        "ExpressionAttributeValues": {
            ":a": {
                "S": "1aa94a6b-6b54-46e6-838d-5781d223f673"
            }
        }
    }
}

I have tested the params in DynamoDB JavaScript Shell and it works expected. I have also successfully tried via AWS CLI

I'm out of ideas. What am I doing wrong?

Edited by: lt-david on Jun 27, 2019 4:21 AM

gefragt vor 5 Jahren801 Aufrufe
2 Antworten
0

managed to get to the bottom of this:

{
    "body": {
        "Items": [],
        "Count": 0,
        "ScannedCount": 2
    },
    "query": {
        "TableName": "lead-data-dev",
        "FilterExpression": "messageId = :a",
        "ExpressionAttributeValues": {
            ":a":  "1aa94a6b-6b54-46e6-838d-5781d223f673"
        }
    }
}

the ExpressionAttributeValues should not have a type, it's odd that it works on the JavaScript Shell and CLI

beantwortet vor 5 Jahren
0

Hi

I am glad you could fix the query to return items.
You can always refer to our documentation for Scan in node.js, https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStarted.NodeJs.04.html#GettingStarted.NodeJs.04.Scan using which you can understand ways to construct the API parameters.

I hope this helps going forward.

Regard,
Almas

AWS
beantwortet vor 5 Jahren

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen