PyMongo използва естествени регулярни изрази на python, по същия начин, както mongo shell използва собствени регулярни изрази на javascript. За да напишете еквивалентна заявка на това, което сте написали в обвивката по-горе, ще използвате:
db.stuff.find_one({'name': re.compile(username, re.IGNORECASE)})
Имайте предвид, че това ще избегне използването на индекс, който може да съществува в name
поле обаче. Често срещан модел за търсене или сортиране без значение на малки и главни букви е да имате второ поле във вашия документ, например name_lower
, което винаги се задава, когато name
промени (на версия с малки букви на name
, в такъв случай). След това ще поискате такъв документ като:
db.stuff.find_one({'name_lower': username.lower()})