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

问题描述 投票:2回答:1

大家好,我有一个查询,我从Web服务获取用户电子邮件,我想过滤用户电子邮件,用户在登录时提供(大写/小写):

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

这里“v1_api”是flask-restplus中的蓝图,如果用户输入与数据库相同的电子邮件地址,但是当我写“[email protected]”代替“capslock @ gmail”时,它会抛出异常,这段代码工作正常。 com“我希望它能使不区分大小写的邮件在lower / uppper中始终被视为小写...在其他数据库如SQLAlchemy中我们可以这样做:

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

但在cassandra我无法做到,请建议我如何做到这一点.....谢谢

python cassandra case-insensitive
1个回答
1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.