PyMongo usa expresiones regulares nativas de python, de la misma manera que el shell de mongo usa expresiones regulares nativas de javascript. Para escribir la consulta equivalente a lo que había escrito en el shell anterior, usaría:
db.stuff.find_one({'name': re.compile(username, re.IGNORECASE)})
Tenga en cuenta que esto evitará el uso de cualquier índice que pueda existir en el name
campo, sin embargo. Un patrón común para la búsqueda u ordenación que no distingue entre mayúsculas y minúsculas es tener un segundo campo en su documento, por ejemplo, name_lower
, que siempre se establece cuando name
cambios (a una versión en minúsculas de name
, en este caso). A continuación, consultaría un documento como:
db.stuff.find_one({'name_lower': username.lower()})