2012-04-04 75 views
19

如何在PyMongo中使用sql“like”?如何在PyMongo中使用sql“like”?

>>> db.houses.find().count() 
11616 
>>> db.houses.find({"hid":u"16999"}).count() 
1 
>>> db.houses.find({"hid":u"/9/"}).count() 
0 

documentation说,在MongoDB的SQL “喜欢”(SELECT * FROM users WHERE name LIKE "%Joe%")是db.users.find ({name:/Joe/})

如果您直接向cli-client接口mongodb指定查询,那么一切正常,但在pymongo中不起作用。

什么问题?

谢谢。

回答

31

pymongo不支持正则表达式文字,你必须使用 '$正则表达式' 谓:

db.houses.find({"hid":{"$regex": u"9"}}) 
+0

谢谢!是工作! – 2012-04-04 20:47:09

+0

如果9表示为变量(search_word),那么语法是什么? db.houses.find({“hid”:{“$ regex”:usearch_word}}).... – vogash 2016-03-10 12:14:54

+0

@vogash:我想,是的。请注意,mongodb使用PCRE正则表达式,而不是python。 – georg 2016-03-10 18:49:09