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

Как да направя заявки без значение за главни букви в Mongodb?

Решението на Крис Фулстоу ще работи (+1), но може да не е ефективно, особено ако колекцията ви е много голяма. Некоренирани регулярни изрази (тези, които не започват с ^ , който закотвя регулярния израз към началото на низа), и тези, използващи i флагът за нечувствителност към малки и малки букви няма да използва индекси, дори и да съществуват.

Алтернативен вариант, който бихте могли да обмислите, е да денормализирате данните си, за да съхранявате версия с малки букви на name поле, например като name_lower . След това можете да заявите това ефективно (особено ако е индексирано) за точни съвпадения без значение на главни и малки букви като:

db.collection.find({"name_lower": thename.toLowerCase()})

Или със съвпадение на префикс (вкоренен регулярен израз) като:

db.collection.find( {"name_lower":
    { $regex: new RegExp("^" + thename.toLowerCase(), "i") } }
);

И двете от тези заявки ще използват индекс на name_lower .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Програмиране на база данни на Python с MongoDB за начинаещи

  2. Какво е MongoDB и как работи?

  3. Относно MongoDB, защо го използваме? Терминологията и внедряването на MongoDB

  4. Експортирайте колекция MongoDB в CSV файл

  5. Вземете генериран скрипт в MongoDB C# драйвер