Před MongoDB verze 3.4 nepodařilo se nám vytvořit index nerozlišují se malá a velká písmena .
Ve verzi 3.4 má collation
možnost, která uživatelům umožňuje specifikovat pravidla pro konkrétní jazyk pro porovnání řetězců , jako jsou pravidla pro písmena a diakritická znaménka.
Možnost řazení má následující syntaxi:
collation: {
locale: <string>,
caseLevel: <boolean>,
caseFirst: <string>,
strength: <int>,
numericOrdering: <boolean>,
alternate: <string>,
maxVariable: <string>,
backwards: <boolean>
}
kde místní nastavení pole je povinné; všechna ostatní pole jsou nepovinná .
K vytvoření indexu bez rozlišení malých a velkých písmen musíme použít povinné pole místní nastavení a sílu pole pro úroveň porovnání řetězců. strength
umožňuje rozsah hodnot 1 – 5 . přečtěte si více o řazení
Atribut síly určuje, zda se při řazení nebo přiřazování textu berou v úvahu akcenty nebo velká a malá písmena
Příklad:
pokud síla=1 pak role =Role =role
pokud síla=2 pak role =Role
pokud síla=3 pak role
Srovnávací úroveň doc
Musíme tedy použít strength=2
k vytvoření indexu. jako:
db.collectionName.createIndex(
{ name: 1, formula: 1, type: 1 },
{
name: "fertilizer_idx",
collation: {locale: "en", strength: 2},
unique: true
}
)
N.B :collation
možnost není k dispozici pro text indexy.