MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

MongoDB c# ड्राइवर:केस असंवेदनशील linq का उपयोग करके सूची में या इसमें शामिल होने की तुलना करें

मुझे अंततः इस मुद्दे का हल मिल गया, बहुत खुदाई के बाद मैंने पाया कि toLower() mongoDb linq प्रदाता में विधियों को लागू नहीं किया गया है इसलिए मुझे MongoQuery का उपयोग करने के लिए बदलना पड़ा

मैंने स्ट्रिंग और सूची के लिए कुछ एक्सटेंशन विधियां बनाई हैं जहां यह स्ट्रिंग या सूची को स्रोत के रूप में लेता है और इसे एक बीएसओएन नियमित अभिव्यक्ति में परिवर्तित करता है

internal static List<BsonValue> ConvertToCaseInsensitiveRegexList(this IEnumerable<string> source)
{
    return source.Select(range => new BsonRegularExpression("/^" + range.Replace("+", @"\+") + "$/i")).Cast<BsonValue>().ToList();
}

internal static List<BsonValue> ConvertToEndsWithRegexList(this IEnumerable<string> source)
{
    return source.Select(range => new BsonRegularExpression("/" + range.Replace("+", @"\+") + "$/i")).Cast<BsonValue>().ToList();
}

internal static BsonRegularExpression ToCaseInsensitiveRegex(this string source)
{
    return new BsonRegularExpression("/^" + source.Replace("+", @"\+") + "$/i");
}

और फिर उनका उपयोग इस तरह किया जाता है...

var colours = new List<string> { "Red", "blue", "white" };
var query = Query<myObject>.In(v => v.Colour, colours.ConvertToCaseInsensitiveRegexList());
this.Find(query).ToList();


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. JBAS011445:दृढ़ता प्रदाता 'org.hibernate.ogm.jpa.HibernateOgmPersistence' के लिए एडेप्टर प्राप्त करने में विफल

  2. MongoDB के लिए C# पुश और रूट के बराबर क्या है?

  3. मार्गों, नियंत्रकों और मॉडलों का उपयोग करके NodeJS परियोजना के मिडलवेयर कोड को पुन:सक्रिय करना

  4. NoSQL डेटाबेस की लड़ाई - MongoDB और Firebase की तुलना करना

  5. Nodejs / Express - मेरा ऐप लॉन्च करना:Express.createServer () पदावनत है