Python 如何使用pymongo在Mongodb中进行正则表达式搜索?

Python 如何使用pymongo在Mongodb中进行正则表达式搜索?,python,regex,mongodb,pymongo,Python,Regex,Mongodb,Pymongo,我想使用pymongo执行regex mongodb查询 cond = {'date':'/.*2011-8-11.*/'} coll.find(cond).count() return 0; 但我直接在Mongodb return 25上执行此查询; 我的查询有问题吗?要使用pymongo中的正则表达式进行搜索,需要使用python正则表达式对象,而不是带斜杠的字符串。对于上面的查询,pymongo语法为: import re # assume connection is set up, a

我想使用pymongo执行regex mongodb查询

cond = {'date':'/.*2011-8-11.*/'}
coll.find(cond).count() return 0;
但我直接在Mongodb return 25上执行此查询;
我的查询有问题吗?

要使用pymongo中的正则表达式进行搜索,需要使用python正则表达式对象,而不是带斜杠的字符串。对于上面的查询,pymongo语法为:

import re
# assume connection is set up, and db
# is a pymongo.database.Database instance
date_re = re.compile(r'2011-8-11')
db.collection.find({'date': date_re})

还请注意,您不需要
字符(在pymongo语法或mongo shell语法中),除非您使用
^
$

锚定正则表达式,或者您可以通过执行
db.collection.find({'date':{$regex':'2011-8-11'})来避免创建regex对象的开销
。与@TkTech编写的(对我来说很有用)相比,这个答案有什么好处?请注意,这不是一个真正的模糊查询。。。相反,这是一个精确的匹配。模糊搜索应该能够设置任何类型的最小可接受接近度(或最大距离),例如solr中的~运算符(项~或项~0.75…)。很遗憾,无论是正则表达式还是mongoDB都不可能。是否可以用“正则表达式搜索”而不是“模糊搜索”来编辑问题?这就是问题的实质所在。