MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Interrogazione efficiente di MongoDB (tramite pymongo) senza distinzione tra maiuscole e minuscole

PyMongo usa espressioni regolari python native, allo stesso modo in cui la mongo shell usa espressioni regolari javascript native. Per scrivere la query equivalente a ciò che avevi scritto nella shell sopra, dovresti usare:

db.stuff.find_one({'name': re.compile(username, re.IGNORECASE)})

Nota che questo eviterà di usare qualsiasi indice che potrebbe esistere sul name campo, però. Un modello comune per la ricerca o l'ordinamento senza distinzione tra maiuscole e minuscole consiste nell'avere un secondo campo nel documento, ad esempio name_lower , che viene sempre impostato ogni volta che name modifiche (a una versione minuscola di name , in questo caso). Dovresti quindi eseguire una query per un documento come:

db.stuff.find_one({'name_lower': username.lower()})