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)
Другие вопросы по тегам