sql >> Databáze >  >> NoSQL >> MongoDB

Mongo jedinečný index nerozlišuje velká a malá písmena

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.



  1. Importujte soubor JSON do MongoDB pomocí mongoimport

  2. MongoDB:výjimka v initAndListen:20 Pokus o vytvoření souboru zámku v adresáři pouze pro čtení:/data/db, ukončení

  3. Šest nejlepších bezplatných nástrojů pro analýzu paměti Redis

  4. Omezte délku seznamu v redis