MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Consultando o MongoDB (via pymongo) em caso insensível com eficiência


PyMongo usa expressões regulares python nativas, da mesma forma que o shell mongo usa expressões regulares javascript nativas. Para escrever a consulta equivalente ao que você escreveu no shell acima, você usaria:
db.stuff.find_one({'name': re.compile(username, re.IGNORECASE)})

Observe que isso evitará o uso de qualquer índice que possa existir no name campo, no entanto. Um padrão comum para pesquisa ou classificação que não diferencia maiúsculas de minúsculas é ter um segundo campo em seu documento, por exemplo, name_lower , que é sempre definido sempre que name alterações (para uma versão em minúsculas de name , nesse caso). Você então consultaria um documento como:
db.stuff.find_one({'name_lower': username.lower()})