Как сделать поиск регулярных выражений в Mongodb с помощью Pymongo? - PullRequest
3 голосов
/ 11 августа 2011

Я хочу выполнить запрос регулярного выражения mongodb, используя pymongo.

cond = {'date':'/.*2011-8-11.*/'}
coll.find(cond).count() return 0;

но я делаю этот запрос непосредственно на Mongodb return 25; Есть ли проблема в моем запросе?

1 Ответ

6 голосов
/ 12 августа 2011

Для поиска по регулярным выражениям из 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), если вы не привязываете свое регулярное выражение, используя ^ или $.

...