如何在Mongodb中使用pymongo进行正则搜索?

3 投票
1 回答
3397 浏览
提问于 2025-04-16 23:22

我想用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的写法中,你不需要使用.这个字符。

撰写回答