Prima di MongoDB versione 3.4 non siamo stati in grado di creare un indice con senza distinzione tra maiuscole e minuscole .
Nella versione 3.4 ha collation
opzione che consente agli utenti di specificare regole specifiche della lingua per il confronto di stringhe , come le regole per le lettere maiuscole e gli accenti.
L'opzione di confronto ha la seguente sintassi:
collation: {
locale: <string>,
caseLevel: <boolean>,
caseFirst: <string>,
strength: <int>,
numericOrdering: <boolean>,
alternate: <string>,
maxVariable: <string>,
backwards: <boolean>
}
dove le località il campo è obbligatorio; tutti gli altri campi sono opzionali .
Per creare un indice senza distinzione tra maiuscole e minuscole dobbiamo utilizzare il campo obbligatorio locale e forza campo per il livello di confronto delle stringhe. strength
consente la rabbia di valore 1 - 5 . leggi di più sulle regole di confronto
L'attributo forza determina se vengono presi in considerazione gli accenti o le maiuscole quando si fascicola o si abbina il testo
Esempio:
se forza=1 quindi ruolo =ruolo =ruolo
se forza=2 quindi ruolo =ruolo
se forza=3 quindi ruolo
Documento a livello di confronto
Quindi dobbiamo usare strength=2
per creare un indice. come:
db.collectionName.createIndex(
{ name: 1, formula: 1, type: 1 },
{
name: "fertilizer_idx",
collation: {locale: "en", strength: 2},
unique: true
}
)
NB :collation
l'opzione non è disponibile per testo indici.