2012-04-04 18 views
19

Come usare sql "mi piace" in PyMongo?Come usare sql "mi piace" in PyMongo?

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

Il documentation dice che SQL "like" (SELECT * FROM users WHERE name LIKE "%Joe%") in MongoDB è db.users.find ({name:/Joe/}).

Se si specifica una query direttamente all'interfaccia cli-client mongodb, allora tutto funziona correttamente, ma non funziona in pymongo.

Qual è il problema?

Grazie.

risposta

31

pymongo non supporta letterali regex, è necessario utilizzare il '$ regex' predicato:

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

Grazie! È un lavoro! –

+0

qual è la sintassi se 9 è rappresentato come variabile (search_word)? db.houses.find ({"hid": {"$ regex": usearch_word}}) .... ??? – vogash

+0

@vogash: immagino, si. Nota che mongodb usa regex per PCRE, non per Python. – georg

Problemi correlati