python mongodb正则表达式:忽略大小写

时间:2011-02-12 04:14:50

标签: python regex mongodb

如何指定REGEX并忽略大小写:

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

我希望过滤器不区分大小写,如何实现?

4 个答案:

答案 0 :(得分:29)

尝试使用python regex对象。 Pymongo会正确地序列化它们:

import re
config.gThingCollection.find({"name": re.compile(regex, re.IGNORECASE)})

答案 1 :(得分:18)

您可以在查询中使用MongoDB正则表达式选项。

config.gThingCollection.find({"name":{"$regex":regex, "$options": "-i"}})

答案 2 :(得分:2)

您的代码应如下所示:

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

参考:http://docs.mongodb.org/v2.2/reference/operator/regex/

答案 3 :(得分:1)

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'}})