MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

MongoDB c# driver:Case Insensitive Bandingkan menggunakan atau berisi pada daftar menggunakan linq

Saya akhirnya menemukan solusi untuk masalah ini, setelah banyak menggali saya menemukan bahwa toLower() metode tidak diimplementasikan di penyedia linq mongoDb jadi saya harus mengubah menggunakan MongoQuery

Saya membuat beberapa metode ekstensi untuk string dan daftar di mana ia mengambil string atau daftar sebagai sumber dan mengubahnya menjadi ekspresi reguler bson

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");
}

dan kemudian mereka digunakan seperti ini...

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. mongodb regex tidak berfungsi

  2. Bagaimana menangani tanda hubung dalam definisi Skema GraphQL

  3. Rails:Jumlah argumen yang salah (diberikan 2, diharapkan 1) MongoID

  4. Apa output dari aliran file yang disalurkan?

  5. Apa perbedaan antara safe:true dan safe:false dalam kaitannya dengan mongoskin? dan bagaimana menggunakannya?