Przed MongoDB w wersji 3.4 nie mogliśmy utworzyć indeksu z bez uwzględniania wielkości liter .
W wersji 3.4 ma collation
opcja, która pozwala użytkownikom określić reguły specyficzne dla języka do porównania ciągów , takie jak zasady dotyczące liter i znaków akcentu.
Opcja sortowania ma następującą składnię:
collation: {
locale: <string>,
caseLevel: <boolean>,
caseFirst: <string>,
strength: <int>,
numericOrdering: <boolean>,
alternate: <string>,
maxVariable: <string>,
backwards: <boolean>
}
gdzie miejscowość pole jest obowiązkowe; wszystkie inne pola są opcjonalne .
Aby utworzyć indeks bez uwzględniania wielkości liter, musimy użyć obowiązkowego pola locale i siła pole dla poziomu porównania ciągów. strength
pozwala na wściekłość wartości 1 - 5 . czytaj więcej o sortowaniu
Atrybut siły określa, czy akcenty lub wielkość liter są brane pod uwagę podczas sortowania lub dopasowywania tekstu
Przykład:
jeśli siła=1 następnie rola =rola =rola
jeśli siła=2 następnie rola =Rola
jeśli siła=3 następnie rola
Dokument na poziomie porównania
Więc musimy użyć strength=2
aby utworzyć indeks. jak:
db.collectionName.createIndex(
{ name: 1, formula: 1, type: 1 },
{
name: "fertilizer_idx",
collation: {locale: "en", strength: 2},
unique: true
}
)
Uwaga :collation
opcja nie jest dostępna dla tekstu indeksy.