Dynamodb scan query equalent to IN sql

13 views Asked by At

I am working with Dynamodb scan query, my data looks like

[
  {
    "class": "A",
    "name": "John",
    "status": "Active"
  },
  {
    "class": B,
    "name": "Darek",
    "status": "InActive"
  },
  {
    "class": C,
    "name": "Carl",
    "status": "Active"
  },
  {
    "class": D,
    "name": "James",
    "status": "Active"
  }
]

I am looking for Sql Query select * from table where name in ('James','Carl','Cooper'), i used scan but not able to return data. Any syntax corrections or any easy alternative way.

var params = {
    TableName : TABLE_NAME,
    KeyConditionExpression: "#name = :James",
    FilterExpression: "#status = :InActive",
    ExpressionAttributeNames:{
        "#name": "Darek"
    },
    ExpressionAttributeValues: {
        ":status": "InActive",
        ":name": ["james", "Darek"]
    }     
};
1

There are 1 answers

0
Kumar_2002 On

Finally worked out syntax

result = dynamodb_client.scan(    
TableName="tablename",    
AttributesToGet=[        'name','class'    ],    
ScanFilter={        'name': {            
'AttributeValueList': [{"S":"james"},{"S":"Park"}],            
'ComparisonOperator': 'IN'        
}    
}
)