sql >> Database >  >> NoSQL >> MongoDB

MongoDB (via pymongo) efficiënt opvragen bij niet-hoofdlettergevoelig

PyMongo gebruikt native reguliere expressies van python, op dezelfde manier als de mongo-shell native javascript reguliere expressies gebruikt. Om de equivalente query te schrijven van wat u in de bovenstaande shell had geschreven, zou u het volgende gebruiken:

db.stuff.find_one({'name': re.compile(username, re.IGNORECASE)})

Houd er rekening mee dat dit voorkomt dat een index wordt gebruikt die mogelijk bestaat op de name veld echter. Een veelvoorkomend patroon voor hoofdletterongevoelig zoeken of sorteren is om een ​​tweede veld in uw document te hebben, bijvoorbeeld name_lower , die altijd wordt ingesteld wanneer name wijzigingen (naar een versie met kleine letters van name , in dit geval). U zou dan een dergelijk document willen opvragen als:

db.stuff.find_one({'name_lower': username.lower()})


  1. mongorestore willekeurige crash (fatale fout)

  2. Hoe {document}.Id wordt niet ondersteund fout op te lossen

  3. Hoe kan ik een JS-scriptbestand van Pymongo uitvoeren?

  4. overgeslagen telling 0 in aggregatiefunctie