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

Уникалният индекс на Mongo не е чувствителен към малки и големи букви

Преди MongoDB версия 3.4 не успяхме да създадем индекс с нечувствителни на главни букви .

Във версия 3.4 има collation опция, която позволява на потребителите да задават специфични за езика правила за сравнение на низове , като правила за букви и знаци за ударение.

Опцията за съпоставяне има следния синтаксис:

collation: {
   locale: <string>,
   caseLevel: <boolean>,
   caseFirst: <string>,
   strength: <int>,
   numericOrdering: <boolean>,
   alternate: <string>,
   maxVariable: <string>,
   backwards: <boolean>
}

където елокала полето е задължително; всички останали полета са по избор .

За да създадем индекс с независимо от главните букви, трябва да използваме задължително поле locale исилата поле за ниво на сравнение на низове. strength позволява стойностна ярост 1 - 5 . прочетете повече за съпоставянето

Атрибутът сила определя дали ударенията или малките букви се вземат предвид при подравняване или съпоставяне на текст

Пример:

ако сила=1 след това роля =Роля =роля

ако сила=2 след това роля =Роля <роля

ако сила=3 след това роля <Роля <роля

Документ за ниво на сравнение

Така че трябва да използваме strength=2 за създаване на индекс. като:

db.collectionName.createIndex(
  { name: 1, formula: 1, type: 1 },
  { 
    name: "fertilizer_idx",
    collation: {locale: "en", strength: 2},
    unique: true
  }
)

N.B :collation опцията не е налична за текст индекси.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $втори

  2. Въведение в Spring Data MongoDB

  3. Инициализирайте данни за докеризирано монго

  4. MongoDB - Филтриране на съдържанието на вътрешен масив в набор от резултати

  5. Stripe:Трябва да посочи източник или клиент