2012-04-04 127 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