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

c # mongodb tìm kiếm phân biệt chữ hoa chữ thường

Lọc trên các trường chuỗi trong Mongodb phân biệt chữ hoa chữ thường mà không cần sử dụng biểu thức chính quy. Chính xác thì tại sao bạn không thể sử dụng biểu thức chính quy?

Truy vấn của bạn có thể được chỉnh sửa như sau:

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

Lưu ý các dấu "^" và "$" để chỉ định một tìm kiếm từ hoàn chỉnh và quan trọng nhất là toán tử không phân biệt chữ hoa chữ thường ở cuối biểu thức chính quy ("/ i").

Một cách khác có thể là Tìm kiếm văn bản, yêu cầu tạo chỉ mục văn bản và không phân biệt chữ hoa chữ thường đối với bảng chữ cái latin: http://docs.mongodb.org/manual/reference/operator/query/text/#match-operation

Trong C #, bạn sẽ sử dụng với Bộ lọc Văn bản:

var filter = Builders<ME_User>.Filter.And(
Builders<ME_User>.Filter.Text(email), 
Builders<ME_User>.Filter.Eq(u => u.Password, password));

Với truy vấn chỉ mục văn bản trong mệnh đề OR, bạn cũng cần tạo chỉ mục trên trường Mật khẩu, nếu không truy vấn OR sẽ tạo ra lỗi:



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoid hay MongoMapper?

  2. Xung đột ReplicaSetId khi thêm nút MongoDB

  3. Mô hình thích hợp cho các lược đồ lồng nhau trong Mongoose / MongoDB là gì?

  4. Khớp với một trường mảng có chứa bất kỳ kết hợp nào của mảng được cung cấp trong MongoDB

  5. Triển khai Strapi Heroku không kết nối được với MongoDB