大写和小写在 Aws dynamoDB 中的包含中不起作用?



我有一个 DynamoDB 数据库,其属性Event_Name具有大写值,例如KRISHNA.当我指定具有小写值(例如krishna(的扫描过滤器表达式比较器CONTAINS时,不会返回值为KRISHNA的项目。当我使用大写值时,它会返回项目。请帮助我。

作为参考,我的代码是:

var params = {
TableName: "User",
FilterExpression: "NOT userId in (:a) and contains(Event_Name, :name)",
ExpressionAttributeValues: {
":a": {
S: $scope.userid
},
":name": {
S: namekey
}
}
};

使用动态扫描方法

可能您已经想通了,但是由于我偶然发现了这个问题并且它没有关闭,因此这是AWS论坛中解决此问题的链接

https://forums.aws.amazon.com/thread.jspa?threadID=92159

DynamoDB 区分大小写。如果您的数据不区分大小写,一种解决方案是在将数据存储在 DynamoDB 中之前先将数据小写或大写。然后,您可以通过查询所有小写或所有大写来解决此问题。对于区分区域设置的排序,您需要考虑区域设置。

因此,您没有做错任何事,您只是期待 DynamoDB 无法提供的内容

最新更新