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")に注意してください。
もう1つの方法は、テキストインデックスの作成が必要で、ラテンアルファベットの大文字と小文字を区別しないテキスト検索です。 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));
OR句にテキストインデックスクエリを使用する場合は、[パスワード]フィールドにもインデックスを作成する必要があります。そうしないと、ORクエリでエラーが発生します。