Mongoengine проверяет, содержится ли вся нечувствительная к регистру строка в ListField()

Я пытаюсь создать запрос, который возвращает все объекты, у которых есть определенный адрес электронной почты в их ListField(EmailField()).

Я попытался с mongoengine, выполнив

User.Objects.filter(emaillist__contains=email)

Проблема заключается в том, что когда строка электронной почты является подстрокой электронного письма, содержащегося в списке адресов электронной почты, объект также возвращается. Однако я хочу, чтобы он возвращался только тогда, когда вся строка электронной почты без учета регистра содержится в поле списка.

Возможно ли это как-то или путем выполнения необработанного запроса? Любые подсказки или помощь очень ценятся!

Йонас


person Jonas    schedule 14.11.2013    source источник
comment
Вы пробовали простейший подход, как показано в этом ссылка? Просто запрос по списку рассылки?   -  person Marius    schedule 14.11.2013


Ответы (1)


В документации есть эта модель , аналогично вашему списку рассылки:

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)
person Marius    schedule 14.11.2013