MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Interroger efficacement MongoDB (via pymongo) en cas d'insensibilité à la casse

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()})