Филтрирането на низови полета в Mongodb е чувствително към главни и малки букви, без да се използват регулярни изрази. Защо точно не можете да използвате регулярни изрази?
Вашата заявка може да бъде редактирана по следния начин:
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));
Обърнете внимание на знаците "^" и "$", за да укажете пълно търсене на дума и най-важното - оператора без регистър в края на регулярния израз ("/i").
Друг начин би бил търсенето на текст, което изисква създаване на текстов индекс и е без значение за латинската азбука:http://docs.mongodb.org/manual/reference/operator/query/text/#match-operation
В C# ще използвате с текстовия филтър:
var filter = Builders<ME_User>.Filter.And(
Builders<ME_User>.Filter.Text(email),
Builders<ME_User>.Filter.Eq(u => u.Password, password));
Със заявка за текстов индекс в клауза ИЛИ ще трябва да създадете индекс и в полето за парола, в противен случай заявката ИЛИ ще доведе до грешка: