регулярное выражение python mongodb: игнорировать регистр - PullRequest
15 голосов
/ 12 февраля 2011

Как я могу указать REGEX и игнорировать регистр:

regex = ".*" + filter + ".*";
config.gThingCollection.find({"name":{"$regex":regex}})

Я хочу, чтобы фильтр не учитывал регистр, как этого добиться?

Ответы [ 4 ]

29 голосов
/ 12 февраля 2011

Попробуйте вместо этого использовать объекты регулярных выражений python.Пимонго правильно их сериализует:

import re
config.gThingCollection.find({"name": re.compile(regex, re.IGNORECASE)})
19 голосов
/ 08 апреля 2013

Вы можете использовать параметры регулярного выражения MongoDB в своем запросе.

config.gThingCollection.find({"name":{"$regex":regex, "$options": "-i"}})
2 голосов
/ 07 сентября 2013

Ваш код должен выглядеть следующим образом:

regex = ".*" + filter + ".*";
config.gThingCollection.find({"name":{"$regex":regex, "$options":"i"}})

Ссылка: http://docs.mongodb.org/v2.2/reference/operator/regex/

1 голос
/ 28 ноября 2013
res = posts.find({"geography": {"$regex": 'europe', "$options": 'i'}})

# if you need use $not
import re
res = posts.find(
    {"geography": {"$not": re.compile('europe'), "$options": 'i'}})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...