MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

c# mongodb търсене, чувствително към главни и малки букви

Филтрирането на низови полета в 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));

Със заявка за текстов индекс в клауза ИЛИ ще трябва да създадете индекс и в полето за парола, в противен случай заявката ИЛИ ще доведе до грешка:



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Референтен възел тип Mongodb

  2. Запитване в Mongodb за месец, ден, година... на дата и час

  3. Как да получа оцветен изход на заявка и обвивка в MongoDB?

  4. Използване на приложението Meteor на iPad, което е внедрено на отдалечен сървър с Meteor-up (проблем при свързване с mongodb)

  5. създайте защитена база данни в mongodb