sql >> Base de Datos >  >> NoSQL >> MongoDB

c# mongodb búsqueda sensible a mayúsculas y minúsculas

El filtrado en campos de cadena en Mongodb distingue entre mayúsculas y minúsculas sin usar expresiones regulares. ¿Por qué exactamente no puedes usar expresiones regulares?

Su consulta se puede editar así:

var filter = Builders<ME_User>.Filter.And(
Builders<ME_User>.Filter.Regex(u => u.Email, new BsonRegularExpression("/^" + email + "$/i"), 
Builders<ME_User>.Filter.Eq(u => u.Password, password));

Observe los signos "^" y "$" para especificar una búsqueda de palabra completa y, lo que es más importante, el operador que no distingue entre mayúsculas y minúsculas al final de la expresión regular ("/i").

Otra forma sería la búsqueda de texto, que requiere la creación de un índice de texto y no distingue entre mayúsculas y minúsculas para el alfabeto latino:http://docs.mongodb.org/manual/reference/operator/query/text/#match-operation

En C#, usará con el filtro de texto:

var filter = Builders<ME_User>.Filter.And(
Builders<ME_User>.Filter.Text(email), 
Builders<ME_User>.Filter.Eq(u => u.Password, password));

Con una consulta de índice de texto en una cláusula OR, también deberá crear un índice en el campo Contraseña; de lo contrario, la consulta OR producirá un error: