Mongoengine проверка, если вся строка без учета регистра содержится в ListField()
Я пытаюсь создать запрос, который возвращает все объекты, которые имеют определенный адрес электронной почты в их ListField(EmailField())
,
Я попытался с mongoengine, выполнив
User.Objects.filter(emaillist__contains=email)
Проблема в том, что когда строка электронной почты является подстрокой электронной почты, содержащейся в emaillist, объект также возвращается. Однако я хочу, чтобы он возвращался только в том случае, если в поле списка содержится вся нечувствительная к регистру строка электронной почты.
Это возможно как-то или путем выполнения необработанного запроса? Любые советы или помощь очень ценится!
Jonas
1 ответ
Решение
В документации у них есть эта модель, похожая на ваш emaillist:
class Post(Document):
tags = ListField(StringField(max_length=30))
И они запрашивают так:
for post in Post.objects(tags='mongodb'):
print post.title
Таким образом, ваш запрос должен работать следующим образом (с учетом регистра):
User.Objects.filter(emaillist__iexact=email)