нечувствителен к регистру в cassandra при фильтрации электронной почты пользователя - PullRequest
2 голосов
/ 12 апреля 2019

Здравствуйте, ребята, у меня есть запрос, по которому я получаю электронную почту пользователя от веб-служб, где я хочу отфильтровать электронную почту пользователя, либо она (в нижнем / верхнем регистре) предоставляется пользователем при входе в систему:

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()

Но в Кассандре я не могу это сделать, пожалуйста, предложите мне, как это сделать ..... спасибо

1 Ответ

1 голос
/ 12 апреля 2019

Невозможно сделать это в Cassandra - Cassandra запрашивает точное значение, которое вы указали, он не мог применить какую-либо функцию во время запроса. Поэтому вам нужно выполнить «нормализацию» электронной почты при вставке данных в базу данных.

...