Преди 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
опцията не е налична за текст индекси.