如何在Mongodb中使用pymongo进行正则搜索?
我想用pymongo在MongoDB中做一个正则表达式查询。
cond = {'date':'/.*2011-8-11.*/'}
coll.find(cond).count() return 0;
但是我直接在MongoDB上执行这个查询时返回了25条记录;我的查询有什么问题吗?
1 个回答
6
要在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的写法中,你不需要使用.
这个字符。