PyMongo używa natywnych wyrażeń regularnych Pythona, w taki sam sposób, w jaki powłoka mongo używa natywnych wyrażeń regularnych javascript. Aby napisać równoważne zapytanie tego, co napisałeś w powłoce powyżej, użyjesz:
db.stuff.find_one({'name': re.compile(username, re.IGNORECASE)})
Zauważ, że pozwoli to uniknąć używania indeksu, który może istnieć w name
jednak pole. Powszechnym wzorcem wyszukiwania lub sortowania bez rozróżniania wielkości liter jest umieszczenie w dokumencie drugiego pola, na przykład name_lower
, który jest zawsze ustawiany, gdy name
zmiany (na małą wersję name
, w tym przypadku). Następnie zapytasz o taki dokument, jak:
db.stuff.find_one({'name_lower': username.lower()})