PyMongo používá nativní regulární výrazy pythonu, stejně jako shell mongo používá nativní regulární výrazy javascriptu. K napsání ekvivalentního dotazu k tomu, co jste napsali do shellu výše, byste použili:
db.stuff.find_one({'name': re.compile(username, re.IGNORECASE)})
Všimněte si, že to zabrání použití jakéhokoli indexu, který může existovat v name
pole však. Běžným vzorem pro vyhledávání nebo třídění bez ohledu na velikost písmen je mít v dokumentu druhé pole, například name_lower
, který je nastaven vždy, když name
změny (na verzi name
s malými písmeny , v tomto případě). Potom byste se zeptali na takový dokument jako:
db.stuff.find_one({'name_lower': username.lower()})