在过滤用户电子邮件时,cassandra中不区分大小写

时间:2019-04-12 12:16:21

标签: python cassandra case-insensitive

大家好,我有一个查询,我要从网络服务中获取用户电子邮件,我想在登录时过滤用户电子邮件(大小写)。

user = User.objects.filter(email_id=v1_api.payload['email_id']).first()

这里“ v1_api”是flask-restplus的蓝图,如果用户输入与数据库相同的电子邮件地址,但当我写“ CAPSLOCK@gmail.com”代替“ capslock”时,它抛出异常,此代码可以正常工作@ gmail.com” 我希望它使大小写不敏感,无论是小写还是大写的电子邮件,都应始终将其视为小写... 在像SQLAlchemy这样的其他数据库中,我们可以通过以下方式做到这一点:

from sqlalchemy import func
user = models.User.query.filter(func.lower(User.username) == func.lower("GaNyE")).first()

但是在cassandra中我无法做到这一点,请建议我该怎么做.....谢谢

1 个答案:

答案 0 :(得分:0)

在Cassandra中无法执行此操作-通过您提供的精确值进行Cassandra查询,在查询期间无法应用任何功能。因此,在将数据插入数据库时​​,需要对电子邮件进行“规范化”。