我有一个具有属性Event_Name
的DynamoDB数据库,该数据库具有大写值,例如KRISHNA
。当我指定具有小写值的Scan FilterExpression比较器CONTAINS
时,例如krishna
,则不会返回值为KRISHNA
的项目。当我使用大写值时,它返回该项。请帮帮我。
供参考,我的代码是:
var params = {
TableName: "User",
FilterExpression: "NOT userId in (:a) and contains(Event_Name, :name)",
ExpressionAttributeValues: {
":a": {
S: $scope.userid
},
":name": {
S: namekey
}
}
};
使用dynamodb扫描方法
答案 0 :(得分:1)
可能你已经想通了,但是因为我偶然发现了这个问题并且它没有关闭,所以这里是AWS论坛中解决问题的链接
https://forums.aws.amazon.com/thread.jspa?threadID=92159
DynamoDB区分大小写。如果您的数据不区分大小写,则一种解决方案是在将数据存储在DynamoDB中之前对数据进行小写或大写。然后你可以通过查询所有小写或全部大写来解决这个问题。您需要考虑区域设置以进行区域设置敏感的排序。
所以你没有做错,你只是期待DynamoDB无法提供的东西