PyMongo usa expressões regulares python nativas, da mesma forma que o shell mongo usa expressões regulares javascript nativas. Para escrever a consulta equivalente ao que você escreveu no shell acima, você usaria:
db.stuff.find_one({'name': re.compile(username, re.IGNORECASE)})
Observe que isso evitará o uso de qualquer índice que possa existir no
name
campo, no entanto. Um padrão comum para pesquisa ou classificação que não diferencia maiúsculas de minúsculas é ter um segundo campo em seu documento, por exemplo, name_lower
, que é sempre definido sempre que name
alterações (para uma versão em minúsculas de name
, nesse caso). Você então consultaria um documento como:db.stuff.find_one({'name_lower': username.lower()})