MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

MongoDB c # driver:So sánh phân biệt chữ hoa chữ thường bằng cách sử dụng trong hoặc chứa trong danh sách bằng linq

Cuối cùng tôi đã tìm ra giải pháp cho vấn đề này, sau rất nhiều lần tìm hiểu, tôi thấy rằng toLower() các phương thức không được triển khai trong nhà cung cấp linq mongoDb vì vậy tôi phải chuyển sang sử dụng MongoQuery

Tôi đã tạo một số phương thức mở rộng cho chuỗi và danh sách trong đó nó lấy chuỗi hoặc danh sách làm nguồn và chuyển đổi nó thành biểu thức chính quy 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");
}

và sau đó chúng được sử dụng như thế này ...

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. Trong MongoDB làm thế nào để trả về chỉ một phần của mảng?

  2. Làm cách nào để lấy số phiên bản MongoDB trên Heroku?

  3. Tính trung bình của một trường tài liệu phụ trên toàn bộ tài liệu trong Mongo

  4. khớp với các ký tự utf8 nhiềubyte trong biểu thức chính quy mongodb

  5. Mongodb:đẩy phần tử vào mảng lồng nhau nếu điều kiện được đáp ứng