PyMongo använder infödda reguljära pythonuttryck, på samma sätt som mongoskalet använder inbyggda reguljära javascriptuttryck. För att skriva motsvarande fråga till det du hade skrivit i skalet ovan skulle du använda:
db.stuff.find_one({'name': re.compile(username, re.IGNORECASE)})
Observera att detta kommer att undvika att använda index som kan finnas på name
fältet dock. Ett vanligt mönster för skiftlägesokänslig sökning eller sortering är att ha ett andra fält i ditt dokument, till exempel name_lower
, som alltid ställs in när name
ändringar (till en version av name
med små bokstäver). , I detta fall). Du skulle då fråga efter ett sådant dokument som:
db.stuff.find_one({'name_lower': username.lower()})