I run some scan request on a dynamoDB table to find User based on their first and/or last names, which can contain umlaut characters like öäü. My JSON request looks like
{"TableName":"user-table-name","FilterExpression":"contains(#firstName, :firstName) and contains(#lastName, :lastName)","ExpressionAttributeNames":{"#firstName":"firstName","#lastName":"lastName"},"ExpressionAttributeValues":{":firstName":"ÖÄÜ",":lastName":"öäü"}}
But I am getting no results for this query, although the entry exists in the table and I am able to scan/query it on the AWS Console. Anyone know why this happens? Does DynamoDB not support characters like umlaut?
This works in ExpressionAttributeValues ...
":firstName": `ÄÖÜ`,
":lastName": `äöü`,
But this does not ..
":firstName": `${params.firstName}`,
":lastName": `${params.lastName}`,
I am using the javascript aws-sdk
if (params.firstName && params.lastName) {
dynamodbParams.FilterExpression = "contains(#firstName, :firstName) and contains(#lastName, :lastName)";
dynamodbParams.ExpressionAttributeNames = {
"#firstName": "firstName",
"#lastName": "lastName",
};
dynamodbParams.ExpressionAttributeValues = {
":firstName": `${params.firstName}`,
":lastName": `${params.lastName}`,
// ":firstName": `ÄÖÜ`,
// ":lastName": `äöü`,
};
}
Any tips would be greatly appreciated...