PyMongo utilise des expressions régulières python natives, de la même manière que le shell mongo utilise des expressions régulières javascript natives. Pour écrire la requête équivalente à ce que vous aviez écrit dans le shell ci-dessus, vous utiliseriez :
db.stuff.find_one({'name': re.compile(username, re.IGNORECASE)})
Notez que cela évitera d'utiliser tout index pouvant exister sur le name
terrain cependant. Un modèle courant pour la recherche ou le tri insensible à la casse consiste à avoir un deuxième champ dans votre document, par exemple name_lower
, qui est toujours défini chaque fois que name
changements (vers une version minuscule de name
, dans ce cas). Vous rechercheriez alors un tel document comme :
db.stuff.find_one({'name_lower': username.lower()})