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));
OR क्लॉज में टेक्स्ट इंडेक्स क्वेरी के साथ, आपको पासवर्ड फ़ील्ड पर भी एक इंडेक्स बनाना होगा, अन्यथा OR क्वेरी एक त्रुटि उत्पन्न करेगी: