2012-04-04 13 views
19

¿Cómo se usa sql "me gusta" en PyMongo?¿Cómo se usa sql "me gusta" en PyMongo?

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

El documentation dice que SQL "como" (SELECT * FROM users WHERE name LIKE "%Joe%") en MongoDB es db.users.find ({name:/Joe/}).

Si especifica una consulta directamente a la interfaz cli-client mongodb, entonces todo funciona correctamente, pero no funciona en pymongo.

¿Cuál es el problema?

Gracias.

Respuesta

31

pymongo no admite literales de expresiones regulares, usted tiene que utilizar el '$ regex' predicado:

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

Gracias! ¡Es trabajo! –

+0

¿cuál es la sintaxis si 9 representada como variable (palabra_buscar)? db.houses.find ({"hid": {"$ regex": usearch_word}}) .... ??? – vogash

+0

@ vogash: supongo que sí. Tenga en cuenta que mongodb usa expresiones regulares de PCRE, no python. – georg

Cuestiones relacionadas