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

c# mongodb pesquisa sensível a maiúsculas e minúsculas


A filtragem em campos de string no Mongodb diferencia maiúsculas de minúsculas sem usar expressões regulares. Por que exatamente você não pode usar expressões regulares?

Sua consulta pode ser editada assim:
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 os sinais "^" e "$" para especificar uma pesquisa de palavras completa e, mais importante, o operador que não diferencia maiúsculas de minúsculas no final da expressão regular ("/i").

Outra forma seria a pesquisa de texto, que requer a criação de um índice de texto e não diferencia maiúsculas de minúsculas para alfabeto latino:http://docs.mongodb.org/manual/reference/operator/query/text/#match-operation

Em C#, você usará com o 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));

Com uma consulta de índice de texto em uma cláusula OR, você também precisará criar um índice no campo Senha, caso contrário, a consulta OR produzirá um erro: