PyMongo verwendet native reguläre Python-Ausdrücke, genauso wie die Mongo-Shell native reguläre JavaScript-Ausdrücke verwendet. Um die äquivalente Abfrage zu dem zu schreiben, was Sie oben in der Shell geschrieben haben, würden Sie Folgendes verwenden:
db.stuff.find_one({'name': re.compile(username, re.IGNORECASE)})
Beachten Sie, dass dies die Verwendung von Indizes vermeidet, die möglicherweise für name
vorhanden sind Feld jedoch. Ein gängiges Muster für die Suche oder Sortierung ohne Berücksichtigung der Groß-/Kleinschreibung besteht darin, ein zweites Feld in Ihrem Dokument zu haben, zum Beispiel name_lower
, die immer gesetzt wird, wenn name
Änderungen (zu einer kleingeschriebenen Version von name
, in diesem Fall). Sie würden dann nach einem solchen Dokument fragen wie:
db.stuff.find_one({'name_lower': username.lower()})